Boost logo

Boost-Build :

Subject: [Boost-build] no matching thread constructor using boost_thread built with STLport
From: Damjan Zemljiè (damjan.zemljic_at_[hidden])
Date: 2012-04-16 11:00:41


Hi,
I'm trying to build app which uses some shared library (BMS) depending on
boost_thread:
- gcc 3.4.3 on Linux 32bit (native build - no cross compilation)
- boost 1.34.1 + STLport 5.0

Boost is build from scratch with STLport like this:
./bjam -a -j 8 stdlib=stlport threading=multi --without-python stage

tools/build/v2/tools/stlport.jam is modified slightly to disable
libstlport.so suffixes (two lines outcommented appending _gcc and/or
_stldebug) rather to modify the target machine.

BOOST builds fine (not everything, spirit for example, but it's not used in
the app so I didn't bother). However, building an app reports unresolved
symbol, which should be in boost_thread library. Build scripts are ok -
used in the past with BOOST and native STL (and they work with BOOST 1.35 +
STLport!), libraries are found... here is a part of app build command line:

usr/bin/c++ -O3 ... -o bms_ctrl -rdynamic -L/paths...
-lboost_thread-gcc34-mt-p-1_34_1 ...

Which reports an error:
BMS/lib/Linux-2.6/libBMS.so: undefined reference to
`boost::thread::thread(boost::function0<void,stlp_std::allocator<boost::function_base>
> const&)'

Analysing the libboost_thread-gcc34-mt-p-1_34_1.so I couldn't found
anything similar to undefined symbol referenced in BMS library:
' U
_ZN5boost6threadC1ERKNS_9function0IvN8stlp_std9allocatorINS_13function_baseEEEEE'

If possible (problem is solved), we would prefer boost 1.34.1 over 1.35.0.
Any idea / hint is very much appreciated.

Thanks in advance,
Damjan



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