Building boost 1.35 with boost.serialization 1.36

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

The 1.36 version on my web site is/was tested against Boost 1.34 which was athe latest released version a the time. All the changes in 1.36 have now been rolled into the Trunk. No real features have been added - just testing with more platforms and adjustments to accomodated breaking changes in libraries on which serializaton depends (sigh). So might take a look at the version in the trunk.
Any idea on how to solve these? It seems that Boost.MPI is rather 'chummy' with the internals of Boost.Serialization,
I don't know about tha
and that things have changed rather significantly there in 1.36.
That's definately true. Robert Ramey
participants (2)
-
Chris Hamilton
-
Robert Ramey