Boost logo

Boost-Build :

Subject: [Boost-build] Threading with vacpp toolset
From: K. Noel Belcourt (kbelco_at_[hidden])
Date: 2010-11-26 13:12:10


Hi,

With the vacpp toolset, we build single threaded by default but when
we enable MPI, a few Boost libraries are built threading=multi due to
the dependence on MPI. What's strange is that the compile lines for
these libraries look like this:

     xlC xlC_r -c -DBOOST_ALL_NO_LIB=1 -DBOOST_SYSTEM_DYN_LINK=1 -
qpic=large -qcpluscmt -qNOOPTimize -qnoinline -g -qfullpath -qeh -
qrtti -I".." -I"/projects/sierra/dawn/openmpi-1.4.2/include" -o "/
scratch2/kbelco/boost/results/boost/bin.v2/libs/graph_parallel/test/
adjlist_build_test-2.test/vacpp-10.1/debug/threading-multi/
adjlist_build_test.o" "../libs/graph_parallel/test/
adjlist_build_test.cpp"

Notice the single threaded compiler (xlC) followed by the multi-
threaded compiler (xlC_r).

The problem seems to be in the vacpp.jam file where the compiler is
selected based on the threading model.

flags vacpp VA_CXX_COMPILER <threading>single : xlC ;
flags vacpp VA_CXX_COMPILER <threading>multi : xlC_r ;

It seems that when we set the flag for the multi-threaded compiler,
we should replace the existing compiler (xlC) rather than append on a
new compiler (xlC_r).

Does anyone know how to make the flags rule perform this feat
(replace instead of append)?

-- Noel


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