I can successfully cross-compile boost on windows targeting QNX OS (x86) using the following command: b2 toolset=qcc target-os=qnx threadapi=pthread
However, of some reason, it seems like the resulting library files don't link correctly to the internal dependencies.
For example doing an objdump on the unit-test-framework results in:
Dynamic Section:
NEEDED bin.v2\libs\timer\build\qcc\release\target-os-qnx\threadapi-pthread\threading-multi\libboost_timer-qcc-mt-1_60.so.1.60.0
NEEDED bin.v2\libs\system\build\qcc\release\target-os-qnx\threadapi-pthread\threading-multi\libboost_system-qcc-mt-1_60.so.1.60.0
NEEDED libm.so.2
NEEDED libc.so.3
As you can see there is a ridiculous path to link to both the timer and the system library (also QNX, like linux, interpret '\' as an escape-char so I can't use the folder-structure in the QNX machine). I've manually edited the library's binary-file and removed the path (I know this is very risky...) to:
Dynamic Section:
NEEDED libboost_timer-qcc-mt-1_60.so.1.60.0
NEEDED libboost_system-qcc-mt-1_60.so.1.60.0
NEEDED libm.so.2
NEEDED libc.so.3
Which works. Is it possible to force Boost to not include the entire path into the library? Is this a boost issue or the QNX 6.6 qcc toolchain issue? I really don't want to edit each library's binary file manually...