Boost logo

Boost-Commit :

Subject: [Boost-commit] svn:boost r57792 - in branches/maintenance/1_41: . boost boost/algorithm/string boost/archive boost/config boost/filesystem boost/fusion boost/graph boost/interprocess boost/intrusive boost/iostreams boost/math boost/numeric/ublas boost/program_options boost/property_tree boost/python boost/regex boost/serialization boost/signals boost/signals2 boost/spirit boost/spirit/home boost/spirit/home/karma boost/spirit/home/support boost/spirit/repository/home/qi/nonterminal boost/system boost/thread boost/tr1 boost/type_traits boost/utility boost/variant boost/wave doc libs libs/config libs/filesystem libs/fusion libs/graph_parallel libs/interprocess libs/intrusive libs/iostreams libs/math libs/mpl/doc/refmanual libs/mpl/doc/src/refmanual libs/numeric/ublas libs/numeric/ublas/doc libs/program_options libs/property_tree libs/python libs/regex libs/serialization libs/signals libs/signals2 libs/spirit libs/spirit/classic/example libs/spirit/doc libs/spirit/example libs/spirit/phoenix libs/spirit/test libs/spirit/test/qi libs/system libs/thread libs/thread/doc libs/timer libs/tr1 libs/type_traits libs/utility libs/wave more people status tools tools/boostbook tools/build/v2 tools/build/v2/tools tools/quickbook tools/regression tools/release tools/wave wiki
From: ghost_at_[hidden]
Date: 2009-11-19 15:11:35


Author: vladimir_prus
Date: 2009-11-19 15:11:34 EST (Thu, 19 Nov 2009)
New Revision: 57792
URL: http://svn.boost.org/trac/boost/changeset/57792

Log:
Merge r57791:
Improve detection of MT requirement of MPI.

Some MPI implementation report -lpthread in the compilation flags. Previously,
we'd add -lpthread, but did not set threading=multi, as we really should.
One manifestation of this issue is that when building with such an MPI,
and requesting "threading=single threading=multi", we'd actually try
to build two variants of everything, including "mpi.so" Python extension.
And since Python extensions, at present, do not have their name adjusted
for different variants, we'd get duplicate target name error.

Properties modified:
   branches/maintenance/1_41/ (props changed)
   branches/maintenance/1_41/CMakeLists.txt (props changed)
   branches/maintenance/1_41/INSTALL (props changed)
   branches/maintenance/1_41/Jamroot (props changed)
   branches/maintenance/1_41/LICENSE_1_0.txt (props changed)
   branches/maintenance/1_41/boost/ (props changed)
   branches/maintenance/1_41/boost-build.jam (props changed)
   branches/maintenance/1_41/boost.css (props changed)
   branches/maintenance/1_41/boost.png (props changed)
   branches/maintenance/1_41/boost/algorithm/string/ (props changed)
   branches/maintenance/1_41/boost/archive/ (props changed)
   branches/maintenance/1_41/boost/config/ (props changed)
   branches/maintenance/1_41/boost/filesystem/ (props changed)
   branches/maintenance/1_41/boost/fusion/ (props changed)
   branches/maintenance/1_41/boost/graph/ (props changed)
   branches/maintenance/1_41/boost/interprocess/ (props changed)
   branches/maintenance/1_41/boost/intrusive/ (props changed)
   branches/maintenance/1_41/boost/iostreams/ (props changed)
   branches/maintenance/1_41/boost/math/ (props changed)
   branches/maintenance/1_41/boost/numeric/ublas/ (props changed)
   branches/maintenance/1_41/boost/program_options/ (props changed)
   branches/maintenance/1_41/boost/property_tree/ (props changed)
   branches/maintenance/1_41/boost/python/ (props changed)
   branches/maintenance/1_41/boost/regex/ (props changed)
   branches/maintenance/1_41/boost/serialization/ (props changed)
   branches/maintenance/1_41/boost/signals/ (props changed)
   branches/maintenance/1_41/boost/signals2/ (props changed)
   branches/maintenance/1_41/boost/spirit/ (props changed)
   branches/maintenance/1_41/boost/spirit/home/ (props changed)
   branches/maintenance/1_41/boost/spirit/home/karma/ (props changed)
   branches/maintenance/1_41/boost/spirit/home/support/attributes.hpp (props changed)
   branches/maintenance/1_41/boost/spirit/repository/home/qi/nonterminal/subrule.hpp (props changed)
   branches/maintenance/1_41/boost/system/ (props changed)
   branches/maintenance/1_41/boost/thread/ (props changed)
   branches/maintenance/1_41/boost/thread.hpp (props changed)
   branches/maintenance/1_41/boost/tr1/ (props changed)
   branches/maintenance/1_41/boost/type_traits/ (props changed)
   branches/maintenance/1_41/boost/utility/value_init.hpp (props changed)
   branches/maintenance/1_41/boost/variant/ (props changed)
   branches/maintenance/1_41/boost/wave/ (props changed)
   branches/maintenance/1_41/bootstrap.bat (props changed)
   branches/maintenance/1_41/bootstrap.sh (props changed)
   branches/maintenance/1_41/doc/ (props changed)
   branches/maintenance/1_41/index.htm (props changed)
   branches/maintenance/1_41/index.html (props changed)
   branches/maintenance/1_41/libs/ (props changed)
   branches/maintenance/1_41/libs/config/ (props changed)
   branches/maintenance/1_41/libs/filesystem/ (props changed)
   branches/maintenance/1_41/libs/fusion/ (props changed)
   branches/maintenance/1_41/libs/graph_parallel/ (props changed)
   branches/maintenance/1_41/libs/interprocess/ (props changed)
   branches/maintenance/1_41/libs/intrusive/ (props changed)
   branches/maintenance/1_41/libs/iostreams/ (props changed)
   branches/maintenance/1_41/libs/libraries.htm (props changed)
   branches/maintenance/1_41/libs/maintainers.txt (props changed)
   branches/maintenance/1_41/libs/math/ (props changed)
   branches/maintenance/1_41/libs/mpl/doc/refmanual/broken-compiler-workarounds.html (props changed)
   branches/maintenance/1_41/libs/mpl/doc/refmanual/categorized-index-concepts.html (props changed)
   branches/maintenance/1_41/libs/mpl/doc/refmanual/cfg-no-preprocessed-headers.html (props changed)
   branches/maintenance/1_41/libs/mpl/doc/refmanual/composition-and-argument-binding.html (props changed)
   branches/maintenance/1_41/libs/mpl/doc/refmanual/data-types-concepts.html (props changed)
   branches/maintenance/1_41/libs/mpl/doc/refmanual/data-types-miscellaneous.html (props changed)
   branches/maintenance/1_41/libs/mpl/doc/refmanual/extensible-associative-sequence.html (props changed)
   branches/maintenance/1_41/libs/mpl/doc/refmanual/inserter-class.html (props changed)
   branches/maintenance/1_41/libs/mpl/doc/refmanual/tag-dispatched-metafunction.html (props changed)
   branches/maintenance/1_41/libs/mpl/doc/refmanual/trivial-metafunctions-summary.html (props changed)
   branches/maintenance/1_41/libs/mpl/doc/src/refmanual/Iterators-Iterator.rst (props changed)
   branches/maintenance/1_41/libs/numeric/ublas/ (props changed)
   branches/maintenance/1_41/libs/numeric/ublas/doc/ (props changed)
   branches/maintenance/1_41/libs/program_options/ (props changed)
   branches/maintenance/1_41/libs/property_tree/ (props changed)
   branches/maintenance/1_41/libs/python/ (props changed)
   branches/maintenance/1_41/libs/regex/ (props changed)
   branches/maintenance/1_41/libs/serialization/ (props changed)
   branches/maintenance/1_41/libs/signals/ (props changed)
   branches/maintenance/1_41/libs/signals2/ (props changed)
   branches/maintenance/1_41/libs/spirit/ (props changed)
   branches/maintenance/1_41/libs/spirit/classic/example/ (props changed)
   branches/maintenance/1_41/libs/spirit/doc/ (props changed)
   branches/maintenance/1_41/libs/spirit/example/ (props changed)
   branches/maintenance/1_41/libs/spirit/phoenix/ (props changed)
   branches/maintenance/1_41/libs/spirit/test/ (props changed)
   branches/maintenance/1_41/libs/spirit/test/qi/optional.cpp (props changed)
   branches/maintenance/1_41/libs/system/ (props changed)
   branches/maintenance/1_41/libs/thread/ (props changed)
   branches/maintenance/1_41/libs/thread/doc/ (props changed)
   branches/maintenance/1_41/libs/timer/ (props changed)
   branches/maintenance/1_41/libs/tr1/ (props changed)
   branches/maintenance/1_41/libs/type_traits/ (props changed)
   branches/maintenance/1_41/libs/utility/swap.html (props changed)
   branches/maintenance/1_41/libs/utility/value_init.htm (props changed)
   branches/maintenance/1_41/libs/utility/value_init_test.cpp (props changed)
   branches/maintenance/1_41/libs/wave/ (props changed)
   branches/maintenance/1_41/more/ (props changed)
   branches/maintenance/1_41/people/ (props changed)
   branches/maintenance/1_41/rst.css (props changed)
   branches/maintenance/1_41/status/ (props changed)
   branches/maintenance/1_41/tools/ (props changed)
   branches/maintenance/1_41/tools/boostbook/ (props changed)
   branches/maintenance/1_41/tools/build/v2/ (props changed)
   branches/maintenance/1_41/tools/quickbook/ (props changed)
   branches/maintenance/1_41/tools/regression/ (props changed)
   branches/maintenance/1_41/tools/release/ (props changed)
   branches/maintenance/1_41/tools/wave/ (props changed)
   branches/maintenance/1_41/wiki/ (props changed)
Text files modified:
   branches/maintenance/1_41/tools/build/v2/tools/mpi.jam | 15 ++++++++++++++-
   1 files changed, 14 insertions(+), 1 deletions(-)

Modified: branches/maintenance/1_41/tools/build/v2/tools/mpi.jam
==============================================================================
--- branches/maintenance/1_41/tools/build/v2/tools/mpi.jam (original)
+++ branches/maintenance/1_41/tools/build/v2/tools/mpi.jam 2009-11-19 15:11:34 EST (Thu, 19 Nov 2009)
@@ -163,7 +163,20 @@
                local add = [ add_feature $(prefix) $(name) $(cmdline) ] ;
 
                if $(add) {
- result += $(add[1]) ;
+
+ if $(add[1]) = <find-shared-library>pthread
+ {
+ # Uhm. It's not really nice that this MPI implementation
+ # uses -lpthread as opposed to -pthread. We do want to
+ # set <threading>multi, instead of -lpthread.
+ result += "<threading>multi" ;
+ MPI_EXTRA_REQUIREMENTS += "<threading>multi" ;
+ }
+ else
+ {
+ result += $(add[1]) ;
+ }
+
                   cmdline = $(add[2]) ;
                   matched = yes ;
                }


Boost-Commit 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