
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