Boost logo

Boost :

Subject: [boost] [serialization][mpi] mpi library doesn't compile due to serialization problems with 1.44
From: Number Cruncher (number.cruncher_at_[hidden])
Date: 2010-08-23 04:40:42


  I'm trying to build 1.44 on Fedora 13 (gcc 4.4.4), and get the
following compiler error:
gcc.compile.c++
bin.v2/libs/mpi/build/gcc-4.4.4/release/link-static/threading-multi/broadcast.o
In file included from ./boost/mpi/packed_iarchive.hpp:27,
                  from ./boost/mpi/communicator.hpp:28,
                  from ./boost/mpi/collectives.hpp:22,
                  from ./boost/mpi/collectives_fwd.hpp:20,
                  from ./boost/mpi/collectives/broadcast.hpp:12,
                  from libs/mpi/src/broadcast.cpp:10:
./boost/mpi/detail/binary_buffer_iprimitive.hpp: In member function
'void boost::mpi::binary_buffer_iprimitive::load(T&) [with T =
boost::archive::version_type]':
./boost/archive/detail/iserializer.hpp:107: instantiated from 'static
void boost::archive::load_access::load_primitive(Archive&, T&) [with
Archive = boost::mpi::packed_iarchive, T = boost::archive::version_type]'
./boost/archive/detail/iserializer.hpp:356: instantiated from 'static
void
boost::archive::detail::load_non_pointer_type<Archive>::load_primitive::invoke(Archive&,
T&) [with T = boost::archive::version_type, Archive =
boost::mpi::packed_iarchive]'
./boost/archive/detail/iserializer.hpp:433: instantiated from 'static
void
boost::archive::detail::load_non_pointer_type<Archive>::invoke(Archive&,
T&) [with T = boost::archive::version_type, Archive =
boost::mpi::packed_iarchive]'
./boost/archive/detail/iserializer.hpp:586: instantiated from 'void
boost::archive::load(Archive&, T&) [with Archive =
boost::mpi::packed_iarchive, T = boost::archive::version_type]'
./boost/archive/detail/common_iarchive.hpp:66: instantiated from 'void
boost::archive::detail::common_iarchive<Archive>::load_override(T&, int)
[with T = boost::archive::version_type, Archive =
boost::mpi::packed_iarchive]'
./boost/mpi/packed_iarchive.hpp:101: instantiated from 'void
boost::mpi::packed_iarchive::load_override(T&, int, mpl_::false_) [with
T = boost::archive::version_type]'
./boost/mpi/packed_iarchive.hpp:118: instantiated from 'void
boost::mpi::packed_iarchive::load_override(T&, int) [with T =
boost::archive::version_type]'
./boost/archive/detail/interface_iarchive.hpp:60: instantiated from
'Archive&
boost::archive::detail::interface_iarchive<Archive>::operator>>(T&)
[with T = boost::archive::version_type, Archive =
boost::mpi::packed_iarchive]'
./boost/archive/detail/common_iarchive.hpp:45: instantiated from 'void
boost::archive::detail::common_iarchive<Archive>::vload(boost::archive::version_type&)
[with Archive = boost::mpi::packed_iarchive]'
libs/mpi/src/broadcast.cpp:151: instantiated from here
./boost/mpi/detail/binary_buffer_iprimitive.hpp:87: error: no matching
function for call to 'assertion_failed(mpl_::failed************
boost::serialization::is_bitwise_serializable<boost::archive::version_type>::************)'
./boost/mpi/detail/

The assertion also trips on:
boost::serialization::is_bitwise_serializable<boost::archive::object_id_type>
boost::serialization::is_bitwise_serializable<boost::archive::class_id_type>
boost::serialization::is_bitwise_serializable<boost::archive::class_id_optional_type>
boost::serialization::is_bitwise_serializable<boost::archive::tracking_type>

Having looked at the source, I see that these types are indeed non-POD
classes and I can't find the is_bitwise_serializable trait applied anywhere.

Am I missing something?

Thanks,
Simon H.


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