|
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