Boost logo

Boost-Build :

From: Florian Adolf (robotik_at_[hidden])
Date: 2008-04-04 13:45:49


Hello,

apparently the boost library does not compile with the QNX 6.3.0 cross
compiler (toolset=qcc) under Win32, in particular the Thread library.

By simple full text search I came across this section in
libs\thread\build\Jamfile.v2, line 49-50

local rule default_threadapi ( )
{
     local api = pthread ;
     if [ os.name ] = "NT" { api = win32 ; }
     return $(api) ;
}

I suspect when corss compiling under win32 for QNX, it doesn't use qcc's
inbuilt pthread support. The error messages show pointers to lines in

libs/thread/src/win32/thread.cpp:...

although it should compile

libs/thread/src/pthread/thread.cpp:...

Some hack in the above jam file section (e.g. commenting the if
statement) yielded errors:

************************************************************
Trying to build Boost.Thread with pthread support.
If you need pthread you should specify the paths.
You can specify them in site-config.jam, user-config.jam
or in the environment.
For example:
PTW32_INCLUDE=C:\Program Files\ptw32\Pre-built2\include
PTW32_LIB=C:\Program Files\ptw32\Pre-built2\lib
************************************************************
Skipping build of: libs/thread/build/boost_thread <build>no in common
properties
.../Externals/boost_1_35_0/tools/build/v2/build\virtual-target.jam:415:
in _adjust-name from module object(file-target)@1145
error: <tag>@rulename is present but is not the only <tag> feature
.../Externals/boost_1_35_0/tools/build/v2/build\virtual-target.jam:224:
in abstract-file-target.__init__ from module object(file-target)@1145
.../Externals/boost_1_35_0/tools/build/v2/build\virtual-target.jam:526:
in object(file-target)@1145.__init__ from module object(file-target)@1145

I tried to work around that problem by building the thread library with
a different build tool where I know how to change include paths etc. It
compiles perfectly and the Thread library examples have no runtime problems.

I do not have a sound understanding of how to adapt boost build's jam
files (yet). So what do I have to change where to disable the wrong
compilation/include of win32 thread api or win32 pthread resp.?

Thanks for pointers/solutions

Florian


Boost-Build list run by bdawes at acm.org, david.abrahams at rcn.com, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk