gyoto / Gyoto

General relativitY Orbit Tracer of the Observatoire de Paris
http://gyoto.obspm.fr/
GNU General Public License v3.0
42 stars 23 forks source link

FTBFS with boost1.65, boost issue? #5

Closed xnox closed 6 years ago

xnox commented 6 years ago

Gyoto started to fail to build from source in Ubuntu with boost 1.65.1

I don't think it's a gyoto issue, but a boost upstream one, but I'm failing to disect that. Thus maybe it is a gyoto issue with e.g. some templates missing initialisation...

I'm struggling to understand how come boost::array of int/double/unsigned is not initialized (with a friend class?) to have serialize method any more.

In file included from /usr/include/boost/serialization/extended_type_info_typeid.hpp:37:0,
                 from /usr/include/boost/archive/detail/oserializer.hpp:39,
                 from /usr/include/boost/mpi/detail/mpi_datatype_oarchive.hpp:14,
                 from /usr/include/boost/mpi/detail/mpi_datatype_cache.hpp:13,
                 from /usr/include/boost/mpi/datatype.hpp:27,
                 from /usr/include/boost/mpi/communicator.hpp:22,
                 from ../include/GyotoScenery.h:46,
                 from Scenery.C:21:
/usr/include/boost/serialization/access.hpp: In instantiation of ‘static void boost::serialization::access::serialize(Archive&, T&, unsigned int) [with Archive = boost::mpi::packed_oarchive; T = boost::array<long unsigned int, 2>]’:
/usr/include/boost/serialization/serialization.hpp:68:22:   required from ‘void boost::serialization::serialize(Archive&, T&, unsigned int) [with Archive = boost::mpi::packed_oarchive; T = boost::array<long unsigned int, 2>]’
/usr/include/boost/serialization/serialization.hpp:126:14:   required from ‘void boost::serialization::serialize_adl(Archive&, T&, unsigned int) [with Archive = boost::mpi::packed_oarchive; T = boost::array<long unsigned int, 2>]’
/usr/include/boost/archive/detail/oserializer.hpp:150:40:   required from ‘void boost::archive::detail::oserializer<Archive, T>::save_object_data(boost::archive::detail::basic_oarchive&, const void*) const [with Archive = boost::mpi::packed_oarchive; T = boost::array<long unsigned int, 2>]’
/usr/include/boost/archive/detail/oserializer.hpp:103:1:   required from ‘class boost::archive::detail::oserializer<boost::mpi::packed_oarchive, boost::array<long unsigned int, 2> >’
/usr/include/boost/archive/detail/oserializer.hpp:255:13:   required from ‘static void boost::archive::detail::save_non_pointer_type<Archive>::save_standard::invoke(Archive&, const T&) [with T = boost::array<long unsigned int, 2>; Archive = boost::mpi::packed_oarchive]’
/usr/include/boost/archive/detail/oserializer.hpp:310:22:   [ skipping 3 instantiation contexts, use -ftemplate-backtrace-limit=0 to disable ]
/usr/include/boost/mpi/packed_oarchive.hpp:97:69:   required from ‘void boost::mpi::packed_oarchive::save_override(const T&, mpl_::false_) [with T = boost::array<long unsigned int, 2>; mpl_::false_ = mpl_::bool_<false>]’
/usr/include/boost/mpi/packed_oarchive.hpp:112:5:   required from ‘void boost::mpi::packed_oarchive::save_override(const T&) [with T = boost::array<long unsigned int, 2>]’
/usr/include/boost/archive/detail/interface_oarchive.hpp:70:9:   required from ‘Archive& boost::archive::detail::interface_oarchive<Archive>::operator<<(const T&) [with T = boost::array<long unsigned int, 2>; Archive = boost::mpi::packed_oarchive]’
/usr/include/boost/mpi/communicator.hpp:1176:6:   required from ‘void boost::mpi::communicator::send_impl(int, int, const T&, mpl_::false_) const [with T = boost::array<long unsigned int, 2>; mpl_::false_ = mpl_::bool_<false>]’
/usr/include/boost/mpi/communicator.hpp:1185:3:   required from ‘void boost::mpi::communicator::send(int, int, const T&) const [with T = boost::array<long unsigned int, 2>]’
Scenery.C:498:40:   required from here
/usr/include/boost/serialization/access.hpp:116:11: error: ‘class boost::array<long unsigned int, 2>’ has no member named ‘serialize’
         t.serialize(ar, file_version);
         ~~^~~~~~~~~
/usr/include/boost/serialization/access.hpp: In instantiation of ‘static void boost::serialization::access::serialize(Archive&, T&, unsigned int) [with Archive = boost::mpi::packed_oarchive; T = boost::array<double, 2>]’:
/usr/include/boost/serialization/serialization.hpp:68:22:   required from ‘void boost::serialization::serialize(Archive&, T&, unsigned int) [with Archive = boost::mpi::packed_oarchive; T = boost::array<double, 2>]’
/usr/include/boost/serialization/serialization.hpp:126:14:   required from ‘void boost::serialization::serialize_adl(Archive&, T&, unsigned int) [with Archive = boost::mpi::packed_oarchive; T = boost::array<double, 2>]’
/usr/include/boost/archive/detail/oserializer.hpp:150:40:   required from ‘void boost::archive::detail::oserializer<Archive, T>::save_object_data(boost::archive::detail::basic_oarchive&, const void*) const [with Archive = boost::mpi::packed_oarchive; T = boost::array<double, 2>]’
/usr/include/boost/archive/detail/oserializer.hpp:103:1:   required from ‘class boost::archive::detail::oserializer<boost::mpi::packed_oarchive, boost::array<double, 2> >’
/usr/include/boost/archive/detail/oserializer.hpp:255:13:   required from ‘static void boost::archive::detail::save_non_pointer_type<Archive>::save_standard::invoke(Archive&, const T&) [with T = boost::array<double, 2>; Archive = boost::mpi::packed_oarchive]’
/usr/include/boost/archive/detail/oserializer.hpp:310:22:   [ skipping 3 instantiation contexts, use -ftemplate-backtrace-limit=0 to disable ]
/usr/include/boost/mpi/packed_oarchive.hpp:97:69:   required from ‘void boost::mpi::packed_oarchive::save_override(const T&, mpl_::false_) [with T = boost::array<double, 2>; mpl_::false_ = mpl_::bool_<false>]’
/usr/include/boost/mpi/packed_oarchive.hpp:112:5:   required from ‘void boost::mpi::packed_oarchive::save_override(const T&) [with T = boost::array<double, 2>]’
/usr/include/boost/archive/detail/interface_oarchive.hpp:70:9:   required from ‘Archive& boost::archive::detail::interface_oarchive<Archive>::operator<<(const T&) [with T = boost::array<double, 2>; Archive = boost::mpi::packed_oarchive]’
/usr/include/boost/mpi/communicator.hpp:1176:6:   required from ‘void boost::mpi::communicator::send_impl(int, int, const T&, mpl_::false_) const [with T = boost::array<double, 2>; mpl_::false_ = mpl_::bool_<false>]’
/usr/include/boost/mpi/communicator.hpp:1185:3:   required from ‘void boost::mpi::communicator::send(int, int, const T&) const [with T = boost::array<double, 2>]’
Scenery.C:501:39:   required from here
/usr/include/boost/serialization/access.hpp:116:11: error: ‘class boost::array<double, 2>’ has no member named ‘serialize’
/usr/include/boost/serialization/access.hpp: In instantiation of ‘static void boost::serialization::access::serialize(Archive&, T&, unsigned int) [with Archive = boost::mpi::packed_iarchive; T = boost::array<long unsigned int, 2>]’:
/usr/include/boost/serialization/serialization.hpp:68:22:   required from ‘void boost::serialization::serialize(Archive&, T&, unsigned int) [with Archive = boost::mpi::packed_iarchive; T = boost::array<long unsigned int, 2>]’
/usr/include/boost/serialization/serialization.hpp:126:14:   required from ‘void boost::serialization::serialize_adl(Archive&, T&, unsigned int) [with Archive = boost::mpi::packed_iarchive; T = boost::array<long unsigned int, 2>]’
/usr/include/boost/archive/detail/iserializer.hpp:188:40:   required from ‘void boost::archive::detail::iserializer<Archive, T>::load_object_data(boost::archive::detail::basic_iarchive&, void*, unsigned int) const [with Archive = boost::mpi::packed_iarchive; T = boost::array<long unsigned int, 2>]’
/usr/include/boost/archive/detail/iserializer.hpp:120:1:   required from ‘class boost::archive::detail::iserializer<boost::mpi::packed_iarchive, boost::array<long unsigned int, 2> >’
/usr/include/boost/archive/detail/iserializer.hpp:410:13:   required from ‘static void boost::archive::detail::load_non_pointer_type<Archive>::load_standard::invoke(Archive&, const T&) [with T = boost::array<long unsigned int, 2>; Archive = boost::mpi::packed_iarchive]’
/usr/include/boost/archive/detail/iserializer.hpp:462:22:   [ skipping 3 instantiation contexts, use -ftemplate-backtrace-limit=0 to disable ]
/usr/include/boost/mpi/packed_iarchive.hpp:99:69:   required from ‘void boost::mpi::packed_iarchive::load_override(T&, mpl_::false_) [with T = boost::array<long unsigned int, 2>; mpl_::false_ = mpl_::bool_<false>]’
/usr/include/boost/mpi/packed_iarchive.hpp:116:5:   required from ‘void boost::mpi::packed_iarchive::load_override(T&) [with T = boost::array<long unsigned int, 2>]’
/usr/include/boost/archive/detail/interface_iarchive.hpp:68:9:   required from ‘Archive& boost::archive::detail::interface_iarchive<Archive>::operator>>(T&) [with T = boost::array<long unsigned int, 2>; Archive = boost::mpi::packed_iarchive]’
/usr/include/boost/mpi/communicator.hpp:1268:6:   required from ‘boost::mpi::status boost::mpi::communicator::recv_impl(int, int, T&, mpl_::false_) const [with T = boost::array<long unsigned int, 2>; mpl_::false_ = mpl_::bool_<false>]’
/usr/include/boost/mpi/communicator.hpp:1278:66:   required from ‘boost::mpi::status boost::mpi::communicator::recv(int, int, T&) const [with T = boost::array<long unsigned int, 2>]’
Scenery.C:571:44:   required from here
/usr/include/boost/serialization/access.hpp:116:11: error: ‘class boost::array<long unsigned int, 2>’ has no member named ‘serialize’
/usr/include/boost/serialization/access.hpp: In instantiation of ‘static void boost::serialization::access::serialize(Archive&, T&, unsigned int) [with Archive = boost::mpi::packed_iarchive; T = boost::array<double, 2>]’:
/usr/include/boost/serialization/serialization.hpp:68:22:   required from ‘void boost::serialization::serialize(Archive&, T&, unsigned int) [with Archive = boost::mpi::packed_iarchive; T = boost::array<double, 2>]’
/usr/include/boost/serialization/serialization.hpp:126:14:   required from ‘void boost::serialization::serialize_adl(Archive&, T&, unsigned int) [with Archive = boost::mpi::packed_iarchive; T = boost::array<double, 2>]’
/usr/include/boost/archive/detail/iserializer.hpp:188:40:   required from ‘void boost::archive::detail::iserializer<Archive, T>::load_object_data(boost::archive::detail::basic_iarchive&, void*, unsigned int) const [with Archive = boost::mpi::packed_iarchive; T = boost::array<double, 2>]’
/usr/include/boost/archive/detail/iserializer.hpp:120:1:   required from ‘class boost::archive::detail::iserializer<boost::mpi::packed_iarchive, boost::array<double, 2> >’
/usr/include/boost/archive/detail/iserializer.hpp:410:13:   required from ‘static void boost::archive::detail::load_non_pointer_type<Archive>::load_standard::invoke(Archive&, const T&) [with T = boost::array<double, 2>; Archive = boost::mpi::packed_iarchive]’
/usr/include/boost/archive/detail/iserializer.hpp:462:22:   [ skipping 3 instantiation contexts, use -ftemplate-backtrace-limit=0 to disable ]
/usr/include/boost/mpi/packed_iarchive.hpp:99:69:   required from ‘void boost::mpi::packed_iarchive::load_override(T&, mpl_::false_) [with T = boost::array<double, 2>; mpl_::false_ = mpl_::bool_<false>]’
/usr/include/boost/mpi/packed_iarchive.hpp:116:5:   required from ‘void boost::mpi::packed_iarchive::load_override(T&) [with T = boost::array<double, 2>]’
/usr/include/boost/archive/detail/interface_iarchive.hpp:68:9:   required from ‘Archive& boost::archive::detail::interface_iarchive<Archive>::operator>>(T&) [with T = boost::array<double, 2>; Archive = boost::mpi::packed_iarchive]’
/usr/include/boost/mpi/communicator.hpp:1268:6:   required from ‘boost::mpi::status boost::mpi::communicator::recv_impl(int, int, T&, mpl_::false_) const [with T = boost::array<double, 2>; mpl_::false_ = mpl_::bool_<false>]’
/usr/include/boost/mpi/communicator.hpp:1278:66:   required from ‘boost::mpi::status boost::mpi::communicator::recv(int, int, T&) const [with T = boost::array<double, 2>]’
Scenery.C:573:43:   required from here
/usr/include/boost/serialization/access.hpp:116:11: error: ‘class boost::array<double, 2>’ has no member named ‘serialize’
Makefile:732: recipe for target 'Scenery.lo' failed
make[3]: *** [Scenery.lo] Error 1
make[3]: Leaving directory '/<<PKGBUILDDIR>>/lib'
Makefile:955: recipe for target 'lib' failed
make[2]: *** [lib] Error 2
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
debian/rules:67: recipe for target 'override_dh_auto_build-arch' failed
make[1]: *** [override_dh_auto_build-arch] Error 2
make[1]: Leaving directory '/<<PKGBUILDDIR>>'
debian/rules:40: recipe for target 'build' failed
make: *** [build] Error 2
dpkg-buildpackage: error: debian/rules build subprocess returned exit status 2
paumard commented 6 years ago

Dear Dimitri,

Thanks for letting me know.

It indeed smells like a Boost regression. I'll try to debug this, but it may be difficult as one needs to understand Boost intricacies.

Regards, Thibaut.

Le 16/11/2017 à 15:59, Dimitri John Ledkov a écrit :

Gyoto started to fail to build from source in Ubuntu with boost 1.65.1

I don't think it's a gyoto issue, but a boost upstream one, but I'm failing to disect that. Thus maybe it is a gyoto issue with e.g. some templates missing initialisation...

I'm struggling to understand how come boost::array of int/double/unsigned is not initialized (with a friend class?) to have serialize method any more.

|In file included from /usr/include/boost/serialization/extended_type_info_typeid.hpp:37:0, from /usr/include/boost/archive/detail/oserializer.hpp:39, from /usr/include/boost/mpi/detail/mpi_datatype_oarchive.hpp:14, from /usr/include/boost/mpi/detail/mpi_datatype_cache.hpp:13, from /usr/include/boost/mpi/datatype.hpp:27, from /usr/include/boost/mpi/communicator.hpp:22, from ../include/GyotoScenery.h:46, from Scenery.C:21: /usr/include/boost/serialization/access.hpp: In instantiation of ‘static void boost::serialization::access::serialize(Archive&, T&, unsigned int) [with Archive = boost::mpi::packed_oarchive; T = boost::array<long unsigned int, 2>]’: /usr/include/boost/serialization/serialization.hpp:68:22: required from ‘void boost::serialization::serialize(Archive&, T&, unsigned int) [with Archive = boost::mpi::packed_oarchive; T = boost::array<long unsigned int, 2>]’ /usr/include/boost/serialization/serialization.hpp:126:14: required from ‘void boost::serialization::serialize_adl(Archive&, T&, unsigned int) [with Archive = boost::mpi::packed_oarchive; T = boost::array<long unsigned int, 2>]’ /usr/include/boost/archive/detail/oserializer.hpp:150:40: required from ‘void boost::archive::detail::oserializer<Archive, T>::save_object_data(boost::archive::detail::basic_oarchive&, const void) const [with Archive = boost::mpi::packed_oarchive; T = boost::array<long unsigned int, 2>]’ /usr/include/boost/archive/detail/oserializer.hpp:103:1: required from ‘class boost::archive::detail::oserializer<boost::mpi::packed_oarchive, boost::array<long unsigned int, 2> >’ /usr/include/boost/archive/detail/oserializer.hpp:255:13: required from ‘static void boost::archive::detail::save_non_pointer_type::save_standard::invoke(Archive&, const T&) [with T = boost::array<long unsigned int, 2>; Archive = boost::mpi::packed_oarchive]’ /usr/include/boost/archive/detail/oserializer.hpp:310:22: [ skipping 3 instantiation contexts, use -ftemplate-backtrace-limit=0 to disable ] /usr/include/boost/mpi/packed_oarchive.hpp:97:69: required from ‘void boost::mpi::packed_oarchive::saveoverride(const T&, mpl::false) [with T = boost::array<long unsigned int, 2>; mpl::false = mpl::bool_]’ /usr/include/boost/mpi/packed_oarchive.hpp:112:5: required from ‘void boost::mpi::packed_oarchive::save_override(const T&) [with T = boost::array<long unsigned int, 2>]’ /usr/include/boost/archive/detail/interface_oarchive.hpp:70:9: required from ‘Archive& boost::archive::detail::interface_oarchive::operator<<(const T&) [with T = boost::array<long unsigned int, 2>; Archive = boost::mpi::packed_oarchive]’ /usr/include/boost/mpi/communicator.hpp:1176:6: required from ‘void boost::mpi::communicator::sendimpl(int, int, const T&, mpl::false) const [with T = boost::array<long unsigned int, 2>; mpl::false = mpl::bool_]’ /usr/include/boost/mpi/communicator.hpp:1185:3: required from ‘void boost::mpi::communicator::send(int, int, const T&) const [with T = boost::array<long unsigned int, 2>]’ Scenery.C:498:40: required from here /usr/include/boost/serialization/access.hpp:116:11: error: ‘class boost::array<long unsigned int, 2>’ has no member named ‘serialize’ t.serialize(ar, file_version); ^~~ /usr/include/boost/serialization/access.hpp: In instantiation of ‘static void boost::serialization::access::serialize(Archive&, T&, unsigned int) [with Archive = boost::mpi::packed_oarchive; T = boost::array<double, 2>]’: /usr/include/boost/serialization/serialization.hpp:68:22: required from ‘void boost::serialization::serialize(Archive&, T&, unsigned int) [with Archive = boost::mpi::packed_oarchive; T = boost::array<double, 2>]’ /usr/include/boost/serialization/serialization.hpp:126:14: required from ‘void boost::serialization::serialize_adl(Archive&, T&, unsigned int) [with Archive = boost::mpi::packed_oarchive; T = boost::array<double, 2>]’ /usr/include/boost/archive/detail/oserializer.hpp:150:40: required from ‘void boost::archive::detail::oserializer<Archive, T>::save_object_data(boost::archive::detail::basic_oarchive&, const void) const [with Archive = boost::mpi::packed_oarchive; T = boost::array<double, 2>]’ /usr/include/boost/archive/detail/oserializer.hpp:103:1: required from ‘class boost::archive::detail::oserializer<boost::mpi::packed_oarchive, boost::array<double, 2> >’ /usr/include/boost/archive/detail/oserializer.hpp:255:13: required from ‘static void boost::archive::detail::save_non_pointer_type::save_standard::invoke(Archive&, const T&) [with T = boost::array<double, 2>; Archive = boost::mpi::packed_oarchive]’ /usr/include/boost/archive/detail/oserializer.hpp:310:22: [ skipping 3 instantiation contexts, use -ftemplate-backtrace-limit=0 to disable ] /usr/include/boost/mpi/packed_oarchive.hpp:97:69: required from ‘void boost::mpi::packed_oarchive::saveoverride(const T&, mpl::false) [with T = boost::array<double, 2>; mpl::false = mpl::bool_]’ /usr/include/boost/mpi/packed_oarchive.hpp:112:5: required from ‘void boost::mpi::packed_oarchive::save_override(const T&) [with T = boost::array<double, 2>]’ /usr/include/boost/archive/detail/interface_oarchive.hpp:70:9: required from ‘Archive& boost::archive::detail::interface_oarchive::operator<<(const T&) [with T = boost::array<double, 2>; Archive = boost::mpi::packed_oarchive]’ /usr/include/boost/mpi/communicator.hpp:1176:6: required from ‘void boost::mpi::communicator::sendimpl(int, int, const T&, mpl::false) const [with T = boost::array<double, 2>; mpl::false = mpl::bool_]’ /usr/include/boost/mpi/communicator.hpp:1185:3: required from ‘void boost::mpi::communicator::send(int, int, const T&) const [with T = boost::array<double, 2>]’ Scenery.C:501:39: required from here /usr/include/boost/serialization/access.hpp:116:11: error: ‘class boost::array<double, 2>’ has no member named ‘serialize’ /usr/include/boost/serialization/access.hpp: In instantiation of ‘static void boost::serialization::access::serialize(Archive&, T&, unsigned int) [with Archive = boost::mpi::packed_iarchive; T = boost::array<long unsigned int, 2>]’: /usr/include/boost/serialization/serialization.hpp:68:22: required from ‘void boost::serialization::serialize(Archive&, T&, unsigned int) [with Archive = boost::mpi::packed_iarchive; T = boost::array<long unsigned int, 2>]’ /usr/include/boost/serialization/serialization.hpp:126:14: required from ‘void boost::serialization::serialize_adl(Archive&, T&, unsigned int) [with Archive = boost::mpi::packed_iarchive; T = boost::array<long unsigned int, 2>]’ /usr/include/boost/archive/detail/iserializer.hpp:188:40: required from ‘void boost::archive::detail::iserializer<Archive, T>::load_object_data(boost::archive::detail::basic_iarchive&, void, unsigned int) const [with Archive = boost::mpi::packed_iarchive; T = boost::array<long unsigned int, 2>]’ /usr/include/boost/archive/detail/iserializer.hpp:120:1: required from ‘class boost::archive::detail::iserializer<boost::mpi::packed_iarchive, boost::array<long unsigned int, 2> >’ /usr/include/boost/archive/detail/iserializer.hpp:410:13: required from ‘static void boost::archive::detail::load_non_pointer_type::load_standard::invoke(Archive&, const T&) [with T = boost::array<long unsigned int, 2>; Archive = boost::mpi::packed_iarchive]’ /usr/include/boost/archive/detail/iserializer.hpp:462:22: [ skipping 3 instantiation contexts, use -ftemplate-backtrace-limit=0 to disable ] /usr/include/boost/mpi/packed_iarchive.hpp:99:69: required from ‘void boost::mpi::packed_iarchive::loadoverride(T&, mpl::false) [with T = boost::array<long unsigned int, 2>; mpl::false = mpl::bool_]’ /usr/include/boost/mpi/packed_iarchive.hpp:116:5: required from ‘void boost::mpi::packed_iarchive::load_override(T&) [with T = boost::array<long unsigned int, 2>]’ /usr/include/boost/archive/detail/interface_iarchive.hpp:68:9: required from ‘Archive& boost::archive::detail::interface_iarchive::operator>>(T&) [with T = boost::array<long unsigned int, 2>; Archive = boost::mpi::packed_iarchive]’ /usr/include/boost/mpi/communicator.hpp:1268:6: required from ‘boost::mpi::status boost::mpi::communicator::recvimpl(int, int, T&, mpl::false) const [with T = boost::array<long unsigned int, 2>; mpl::false = mpl::bool_]’ /usr/include/boost/mpi/communicator.hpp:1278:66: required from ‘boost::mpi::status boost::mpi::communicator::recv(int, int, T&) const [with T = boost::array<long unsigned int, 2>]’ Scenery.C:571:44: required from here /usr/include/boost/serialization/access.hpp:116:11: error: ‘class boost::array<long unsigned int, 2>’ has no member named ‘serialize’ /usr/include/boost/serialization/access.hpp: In instantiation of ‘static void boost::serialization::access::serialize(Archive&, T&, unsigned int) [with Archive = boost::mpi::packed_iarchive; T = boost::array<double, 2>]’: /usr/include/boost/serialization/serialization.hpp:68:22: required from ‘void boost::serialization::serialize(Archive&, T&, unsigned int) [with Archive = boost::mpi::packed_iarchive; T = boost::array<double, 2>]’ /usr/include/boost/serialization/serialization.hpp:126:14: required from ‘void boost::serialization::serialize_adl(Archive&, T&, unsigned int) [with Archive = boost::mpi::packed_iarchive; T = boost::array<double, 2>]’ /usr/include/boost/archive/detail/iserializer.hpp:188:40: required from ‘void boost::archive::detail::iserializer<Archive, T>::load_object_data(boost::archive::detail::basic_iarchive&, void, unsigned int) const [with Archive = boost::mpi::packed_iarchive; T = boost::array<double, 2>]’ /usr/include/boost/archive/detail/iserializer.hpp:120:1: required from ‘class boost::archive::detail::iserializer<boost::mpi::packed_iarchive, boost::array<double, 2> >’ /usr/include/boost/archive/detail/iserializer.hpp:410:13: required from ‘static void boost::archive::detail::load_non_pointer_type::load_standard::invoke(Archive&, const T&) [with T = boost::array<double, 2>; Archive = boost::mpi::packed_iarchive]’ /usr/include/boost/archive/detail/iserializer.hpp:462:22: [ skipping 3 instantiation contexts, use -ftemplate-backtrace-limit=0 to disable ] /usr/include/boost/mpi/packed_iarchive.hpp:99:69: required from ‘void boost::mpi::packed_iarchive::loadoverride(T&, mpl::false) [with T = boost::array<double, 2>; mpl::false = mpl::bool_]’ /usr/include/boost/mpi/packed_iarchive.hpp:116:5: required from ‘void boost::mpi::packed_iarchive::load_override(T&) [with T = boost::array<double, 2>]’ /usr/include/boost/archive/detail/interface_iarchive.hpp:68:9: required from ‘Archive& boost::archive::detail::interface_iarchive::operator>>(T&) [with T = boost::array<double, 2>; Archive = boost::mpi::packed_iarchive]’ /usr/include/boost/mpi/communicator.hpp:1268:6: required from ‘boost::mpi::status boost::mpi::communicator::recvimpl(int, int, T&, mpl::false) const [with T = boost::array<double, 2>; mpl::false = mpl::bool_]’ /usr/include/boost/mpi/communicator.hpp:1278:66: required from ‘boost::mpi::status boost::mpi::communicator::recv(int, int, T&) const [with T = boost::array<double, 2>]’ Scenery.C:573:43: required from here /usr/include/boost/serialization/access.hpp:116:11: error: ‘class boost::array<double, 2>’ has no member named ‘serialize’ Makefile:732: recipe for target 'Scenery.lo' failed make[3]: [Scenery.lo] Error 1 make[3]: Leaving directory '/<>/lib' Makefile:955: recipe for target 'lib' failed make[2]: [lib] Error 2 make[2]: Leaving directory '/<>' debian/rules:67: recipe for target 'override_dh_auto_build-arch' failed make[1]: [override_dh_auto_build-arch] Error 2 make[1]: Leaving directory '/<>' debian/rules:40: recipe for target 'build' failed make: [build] Error 2 dpkg-buildpackage: error: debian/rules build subprocess returned exit status 2 |

— You are receiving this because you are subscribed to this thread. Reply to this email directly, view it on GitHub https://github.com/gyoto/Gyoto/issues/5, or mute the thread https://github.com/notifications/unsubscribe-auth/AAl5Go82LYUrJMM8-YJv1EPZ_plcB77vks5s3E3egaJpZM4QgnpK.

--

paumard commented 6 years ago

Dear Dimitri,

I've uploaded to Debian version 1.2.0-4 that fixes it. The issue is that boost/serialization/array.hpp has been split into several pieces in Boost 1.64. I will also apply the same patch to Gyoto proper soon.

Regards, Thibaut.

xnox commented 6 years ago

Damn! I was close, but not enough. I have been adding these includes, but further down in the build, hence it looked like a never-ending rabbit hole. Oh well, was not obvious at all from the error messages! Thanks a lot! will sync back to ubuntu when available.

paumard commented 6 years ago

Thanks to you. Indeed I would have prefered to put those includes in Scenery.C but it does not work, no idea why.

Regards, Thibaut.

xnox commented 6 years ago

Builds fine everywhere in ubuntu now!

xnox commented 6 years ago

https://launchpad.net/ubuntu/+source/gyoto/1.2.0-4