Boost logo

Boost-Build :

Subject: [Boost-build] Problem with compiling boost with MPI
From: Julien Plu (julien.plu_at_[hidden])
Date: 2013-03-12 13:49:19


Hi,

I have a problem for compiling boost with MPI. I use the last version of
MPICH2, unfortunately with a bug in mpicxx.h . So I used these commands
lines :

- b2 toolset=gcc --j4 --layout=system release --prefix=C:\librairies\boost-*
*1.53.0 --user-config=user-config.jam cxxflags=- DMPICH_SKIP_MPICXX install

- b2 toolset=gcc --j4 --layout=system release --prefix=C:\librairies\boost-*
*1.53.0 --user-config=user-config.jam define=MPICH_SKIP_MPICXX install

and always the same error :

gcc.link.dll bin.v2\libs\mpi\build\gcc-**mingw-4.7.2\release\threading-**
> multi\libmpi.dll.a
> bin.v2\libs\mpi\build\gcc-**mingw-4.7.2\release\threading-**
> multi\python\skeleton_and_**content.o:skeleton_and_**content.cpp:(.text+0x718):
> undefined reference to `_imp___**ZN5boost3mpi6python6detail24sk**
> eleton_proxy_base_typeE'
> collect2.exe: error: ld returned 1 exit status
>
> "g++" -L"C:\Python273\libs" -L"C:\librairies\MPICH2-3.0.2\**lib"
> -Wl,-R -Wl,"C:\Python273\libs" "-Wl,--out-implib,bin.v2\libs\**
> mpi\build\gcc-mingw-4.7.2\**release\threading-multi\**libmpi.dll.a" -o
> "bin.v2\libs\mpi\build\gcc-**mingw-4.7.2\release\threading-**multi\mpi.pyd"
> -shared -Wl,--start-group "bin.v2\libs\mpi\build\gcc-**
> mingw-4.7.2\release\threading-**multi\python\collectives.o"
> "bin.v2\libs\mpi\build\gcc-**mingw-4.7.2\release\threading-**
> multi\python\py_communicator.**o" "bin.v2\libs\mpi\build\gcc-**
> mingw-4.7.2\release\threading-**multi\python\datatypes.o"
> "bin.v2\libs\mpi\build\gcc-**mingw-4.7.2\release\threading-**multi\python\documentation.o"
> "bin.v2\libs\mpi\build\gcc-**mingw-4.7.2\release\threading-**multi\python\py_environment.o"
> "bin.v2\libs\mpi\build\gcc-**mingw-4.7.2\release\threading-**multi\python\py_nonblocking.o"
> "bin.v2\libs\mpi\build\gcc-**mingw-4.7.2\release\threading-**multi\python\py_exception.o"
> "bin.v2\libs\mpi\build\gcc-**mingw-4.7.2\release\threading-**multi\python\module.o"
> "bin.v2\!
>
libs\mpi\build\gcc-mingw-4.7.**2\release\threading-multi\**python\py_request.o"
"bin.v2\libs\mpi\build\gcc-**mingw-4.7.2\release\threading-**
multi\python\skeleton_and_**content.o" "bin.v2\libs\mpi\build\gcc-**
mingw-4.7.2\release\threading-**multi\python\status.o"
"bin.v2\libs\mpi\build\gcc-**mingw-4.7.2\release\threading-**multi\python\py_timer.o"
"bin.v2\libs\mpi\build\gcc-**mingw-4.7.2\release\threading-**
multi\libboost_mpi_python.dll.**a" "bin.v2\libs\python\build\gcc-**
mingw-4.7.2\release\threading-**multi\libboost_python.dll.a"
"bin.v2\libs\mpi\build\gcc-**mingw-4.7.2\release\threading-**multi\libboost_mpi.dll.a"
"bin.v2\libs\serialization\**build\gcc-mingw-4.7.2\release\**
threading-multi\libboost_**serialization.dll.a" -Wl,-Bstatic -lmpi
-Wl,-Bdynamic -lpython27 -Wl,--end-group -mthreads

>
> ...failed gcc.link.dll bin.v2\libs\mpi\build\gcc-**
> mingw-4.7.2\release\threading-**multi\libmpi.dll.a
> bin.v2\libs\mpi\build\gcc-**mingw-4.7.2\release\threading-**
> multi\mpi.pyd...
> ...removing bin.v2\libs\mpi\build\gcc-**mingw-4.7.2\release\threading-**
> multi\libmpi.dll.a
> ...skipped <pC:\librairies\boost-1.53.0\**lib>mpi.pyd for lack of
> <pbin.v2\libs\mpi\build\gcc-**mingw-4.7.2\release\threading-**
> multi>mpi.pyd...
> ...skipped <pC:\librairies\boost-1.53.0\**lib>libmpi.dll.a for lack of
> <pbin.v2\libs\mpi\build\gcc-**mingw-4.7.2\release\threading-**
> multi>libmpi.dll.a...
>

And I think the flag "MPICH_SKIP_MPICXX" override some others defined
in libs/mpi/build/Jamfile.v2.
Anyone know how to add this flag without overriding the existing ones ?

Thanks in advance.

Julien.



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