Boost logo

Boost :

From: Chris Hamilton (chamilton_at_[hidden])
Date: 2008-06-11 10:31:38


I require a few of the new features introduced in Boost.Serialization
1.36, namely the support of serialization across multiple shared
libraries and multi-threaded support. The Serialization library itself
doesn't build cleanly, but adding a missing #include in one of the
headers solves that for me.

However, I now get errors when building the MPI library:

gcc.compile.c++
bin.v2/libs/mpi/build/gcc-3.4.6/release/threading-multi/packed_iarchive.o
In file included from libs/mpi/src/packed_iarchive.cpp:11:
./boost/archive/impl/archive_pointer_oserializer.ipp:27: error:
redefinition of `class
boost::archive::detail::<unnamed>::serializer_map<Archive>'
./boost/archive/impl/archive_pointer_iserializer.ipp:27: error: previous
definition of `class
boost::archive::detail::<unnamed>::serializer_map<Archive>'

    "g++" -ftemplate-depth-128 -O3 -finline-functions -Wno-inline -Wall
-fPIC -pthread -DBOOST_ALL_NO_LIB=1 -DBOOST_MPI_DYN_LINK=1
-DBOOST_MPI_SOURCE=1 -DNDEBUG -I"." -I"/opt/lam/gnu/include" -c -o
"bin.v2/libs/mpi/build/gcc-3.4.6/release/threading-multi/packed_iarchive.o"
"libs/mpi/src/packed_iarchive.cpp"

...failed gcc.compile.c++
bin.v2/libs/mpi/build/gcc-3.4.6/release/threading-multi/packed_iarchive.o...
...removing
bin.v2/libs/mpi/build/gcc-3.4.6/release/threading-multi/packed_iarchive.o
gcc.compile.c++
bin.v2/libs/mpi/build/gcc-3.4.6/release/threading-multi/packed_oarchive.o
gcc.compile.c++
bin.v2/libs/mpi/build/gcc-3.4.6/release/threading-multi/packed_skeleton_iarchive.o
In file included from libs/mpi/src/packed_skeleton_iarchive.cpp:11:
./boost/archive/impl/archive_pointer_oserializer.ipp:27: error:
redefinition of `class
boost::archive::detail::<unnamed>::serializer_map<Archive>'
./boost/archive/impl/archive_pointer_iserializer.ipp:27: error: previous
definition of `class
boost::archive::detail::<unnamed>::serializer_map<Archive>'

    "g++" -ftemplate-depth-128 -O3 -finline-functions -Wno-inline -Wall
-fPIC -pthread -DBOOST_ALL_NO_LIB=1 -DBOOST_MPI_DYN_LINK=1
-DBOOST_MPI_SOURCE=1 -DNDEBUG -I"." -I"/opt/lam/gnu/include" -c -o
"bin.v2/libs/mpi/build/gcc-3.4.6/release/threading-multi/packed_skeleton_iarchive.o"
"libs/mpi/src/packed_skeleton_iarchive.cpp"

...failed gcc.compile.c++
bin.v2/libs/mpi/build/gcc-3.4.6/release/threading-multi/packed_skeleton_iarchive.o...
...removing
bin.v2/libs/mpi/build/gcc-3.4.6/release/threading-multi/packed_skeleton_iarchive.o
gcc.compile.c++
bin.v2/libs/mpi/build/gcc-3.4.6/release/threading-multi/packed_skeleton_oarchive.o
...skipped
<pbin.v2/libs/mpi/build/gcc-3.4.6/release/threading-multi>libboost_mpi-gcc34-mt-1_35.so.1.35.0
for lack of
<pbin.v2/libs/mpi/build/gcc-3.4.6/release/threading-multi>packed_iarchive.o...

Any idea on how to solve these? It seems that Boost.MPI is rather
'chummy' with the internals of Boost.Serialization, and that things have
changed rather significantly there in 1.36.

Regards,

Chris Hamilton


Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk