Hi all,
One of GPlates’ dependencies got updated on my system (libboost 1.75 → 1.76) so I need to recompile GPlates to link to the newer version. Unfortunately, compilation fails about half-way, with the following output:
…
[ 46%] Building CXX object src/CMakeFiles/gplates-lib.dir/maths/GeometryDistance.cc.o
In file included from /usr/include/boost/bind.hpp:30,
from /src/archlinux/gplates/src/gplates_src_r19678/src/utils/ReferenceCount.h:29,
from /src/archlinux/gplates/src/gplates_src_r19678/src/maths/ProximityHitDetail.h:35,
from /src/archlinux/gplates/src/gplates_src_r19678/src/maths/GeometryOnSphere.h:31,
from /src/archlinux/gplates/src/gplates_src_r19678/src/maths/PointOnSphere.h:37,
from /src/archlinux/gplates/src/gplates_src_r19678/src/maths/GreatCircleArc.h:41,
from /src/archlinux/gplates/src/gplates_src_r19678/src/maths/GeometryDistance.h:34,
from /src/archlinux/gplates/src/gplates_src_r19678/src/maths/GeometryDistance.cc:26:
/usr/include/boost/bind.hpp:36:1: note: ‘#pragma message: The practice of declaring the Bind placeholders (_1, _2, ...) in the global namespace is deprecated. Please use <boost/bind/bind.hpp> + using namespace boost::placeholders, or define BOOST_BIND_GLOBAL_PLACEHOLDERS to retain the current behavior.’
36 | BOOST_PRAGMA_MESSAGE(
| ^~~~~~~~~~~~~~~~~~~~
In file included from /usr/include/boost/bind.hpp:30,
from /src/archlinux/gplates/src/gplates_src_r19678/src/utils/ReferenceCount.h:29,
from /src/archlinux/gplates/src/gplates_src_r19678/src/maths/ProximityHitDetail.h:35,
from /src/archlinux/gplates/src/gplates_src_r19678/src/maths/GeometryOnSphere.h:31,
from /src/archlinux/gplates/src/gplates_src_r19678/src/maths/PointOnSphere.h:37,
from /src/archlinux/gplates/src/gplates_src_r19678/src/maths/GeneratePoints.h:31,
from /src/archlinux/gplates/src/gplates_src_r19678/src/maths/GeneratePoints.cc:36:
/usr/include/boost/bind.hpp:36:1: note: ‘#pragma message: The practice of declaring the Bind placeholders (_1, _2, ...) in the global namespace is deprecated. Please use <boost/bind/bind.hpp> + using namespace boost::placeholders, or define BOOST_BIND_GLOBAL_PLACEHOLDERS to retain the current behavior.’
36 | BOOST_PRAGMA_MESSAGE(
| ^~~~~~~~~~~~~~~~~~~~
/src/archlinux/gplates/src/gplates_src_r19678/src/maths/GeometryDistance.cc: In function ‘GPlatesMaths::AngularDistance GPlatesMaths::minimum_distance(const GPlatesMaths::PolylineOnSphere&, const GPlatesMaths::MultiPointOnSphere&, boost::optional<const GPlatesMaths::AngularExtent&>, boost::optional<boost::tuples::tuple<GPlatesMaths::UnitVector3D&, GPlatesMaths::UnitVector3D&> >, boost::optional<boost::tuples::tuple<unsigned int&, unsigned int&> >)’:
/src/archlinux/gplates/src/gplates_src_r19678/src/maths/GeometryDistance.cc:1621:25: error: ‘*(boost::tuples::cons<GPlatesMaths::UnitVector3D&, boost::tuples::cons<GPlatesMaths::UnitVector3D&, boost::tuples::null_type> >*)((char*)&closest_positions_reversed + offsetof(boost::optional<boost::tuples::tuple<GPlatesMaths::UnitVector3D&, GPlatesMaths::UnitVector3D&, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type> >,boost::optional<boost::tuples::tuple<GPlatesMaths::UnitVector3D&, GPlatesMaths::UnitVector3D&, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type> >::<unnamed>.boost::optional_detail::optional_base<boost::tuples::tuple<GPlatesMaths::UnitVector3D&, GPlatesMaths::UnitVector3D&, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type> >::m_storage.boost::optional_detail::aligned_storage<boost::tuples::tuple<GPlatesMaths::UnitVector3D&, GPlatesMaths::UnitVector3D&, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type> >::dummy_)).boost::tuples::cons<GPlatesMaths::UnitVector3D&, boost::tuples::cons<GPlatesMaths::UnitVector3D&, boost::tuples::null_type> >::head’ is used uninitialized [-Werror=uninitialized]
1621 | closest_positions_reversed;
| ^~~~~~~~~~~~~~~~~~~~~~~~~~
/src/archlinux/gplates/src/gplates_src_r19678/src/maths/GeometryDistance.cc:1621:25: error: ‘((boost::tuples::cons<GPlatesMaths::UnitVector3D&, boost::tuples::null_type>*)((char*)&closest_positions_reversed + offsetof(boost::optional<boost::tuples::tuple<GPlatesMaths::UnitVector3D&, GPlatesMaths::UnitVector3D&, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type> >,boost::optional<boost::tuples::tuple<GPlatesMaths::UnitVector3D&, GPlatesMaths::UnitVector3D&, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type> >::<unnamed>.boost::optional_detail::optional_base<boost::tuples::tuple<GPlatesMaths::UnitVector3D&, GPlatesMaths::UnitVector3D&, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type> >::m_storage.boost::optional_detail::aligned_storage<boost::tuples::tuple<GPlatesMaths::UnitVector3D&, GPlatesMaths::UnitVector3D&, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type> >::dummy_)))[1].boost::tuples::cons<GPlatesMaths::UnitVector3D&, boost::tuples::null_type>::head’ is used uninitialized [-Werror=uninitialized]
/src/archlinux/gplates/src/gplates_src_r19678/src/maths/GeometryDistance.cc: In function ‘GPlatesMaths::AngularDistance GPlatesMaths::minimum_distance(const GPlatesMaths::PolygonOnSphere&, const GPlatesMaths::MultiPointOnSphere&, bool, boost::optional<const GPlatesMaths::AngularExtent&>, boost::optional<boost::tuples::tuple<GPlatesMaths::UnitVector3D&, GPlatesMaths::UnitVector3D&> >, boost::optional<boost::tuples::tuple<unsigned int&, unsigned int&> >)’:
/src/archlinux/gplates/src/gplates_src_r19678/src/maths/GeometryDistance.cc:1823:25: error: ‘*(boost::tuples::cons<GPlatesMaths::UnitVector3D&, boost::tuples::cons<GPlatesMaths::UnitVector3D&, boost::tuples::null_type> >*)((char*)&closest_positions_reversed + offsetof(boost::optional<boost::tuples::tuple<GPlatesMaths::UnitVector3D&, GPlatesMaths::UnitVector3D&, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type> >,boost::optional<boost::tuples::tuple<GPlatesMaths::UnitVector3D&, GPlatesMaths::UnitVector3D&, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type> >::<unnamed>.boost::optional_detail::optional_base<boost::tuples::tuple<GPlatesMaths::UnitVector3D&, GPlatesMaths::UnitVector3D&, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type> >::m_storage.boost::optional_detail::aligned_storage<boost::tuples::tuple<GPlatesMaths::UnitVector3D&, GPlatesMaths::UnitVector3D&, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type> >::dummy_)).boost::tuples::cons<GPlatesMaths::UnitVector3D&, boost::tuples::cons<GPlatesMaths::UnitVector3D&, boost::tuples::null_type> >::head’ is used uninitialized [-Werror=uninitialized]
1823 | closest_positions_reversed;
| ^~~~~~~~~~~~~~~~~~~~~~~~~~
/src/archlinux/gplates/src/gplates_src_r19678/src/maths/GeometryDistance.cc:1823:25: error: ‘((boost::tuples::cons<GPlatesMaths::UnitVector3D&, boost::tuples::null_type>*)((char*)&closest_positions_reversed + offsetof(boost::optional<boost::tuples::tuple<GPlatesMaths::UnitVector3D&, GPlatesMaths::UnitVector3D&, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type> >,boost::optional<boost::tuples::tuple<GPlatesMaths::UnitVector3D&, GPlatesMaths::UnitVector3D&, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type> >::<unnamed>.boost::optional_detail::optional_base<boost::tuples::tuple<GPlatesMaths::UnitVector3D&, GPlatesMaths::UnitVector3D&, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type> >::m_storage.boost::optional_detail::aligned_storage<boost::tuples::tuple<GPlatesMaths::UnitVector3D&, GPlatesMaths::UnitVector3D&, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type> >::dummy_)))[1].boost::tuples::cons<GPlatesMaths::UnitVector3D&, boost::tuples::null_type>::head’ is used uninitialized [-Werror=uninitialized]
/src/archlinux/gplates/src/gplates_src_r19678/src/maths/GeometryDistance.cc: In function ‘GPlatesMaths::AngularDistance GPlatesMaths::minimum_distance(const GPlatesMaths::PolygonOnSphere&, const GPlatesMaths::PolylineOnSphere&, bool, boost::optional<const GPlatesMaths::AngularExtent&>, boost::optional<boost::tuples::tuple<GPlatesMaths::UnitVector3D&, GPlatesMaths::UnitVector3D&> >, boost::optional<boost::tuples::tuple<unsigned int&, unsigned int&> >)’:
/src/archlinux/gplates/src/gplates_src_r19678/src/maths/GeometryDistance.cc:1860:25: error: ‘*(boost::tuples::cons<GPlatesMaths::UnitVector3D&, boost::tuples::cons<GPlatesMaths::UnitVector3D&, boost::tuples::null_type> >*)((char*)&closest_positions_reversed + offsetof(boost::optional<boost::tuples::tuple<GPlatesMaths::UnitVector3D&, GPlatesMaths::UnitVector3D&, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type> >,boost::optional<boost::tuples::tuple<GPlatesMaths::UnitVector3D&, GPlatesMaths::UnitVector3D&, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type> >::<unnamed>.boost::optional_detail::optional_base<boost::tuples::tuple<GPlatesMaths::UnitVector3D&, GPlatesMaths::UnitVector3D&, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type> >::m_storage.boost::optional_detail::aligned_storage<boost::tuples::tuple<GPlatesMaths::UnitVector3D&, GPlatesMaths::UnitVector3D&, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type> >::dummy_)).boost::tuples::cons<GPlatesMaths::UnitVector3D&, boost::tuples::cons<GPlatesMaths::UnitVector3D&, boost::tuples::null_type> >::head’ is used uninitialized [-Werror=uninitialized]
1860 | closest_positions_reversed;
| ^~~~~~~~~~~~~~~~~~~~~~~~~~
/src/archlinux/gplates/src/gplates_src_r19678/src/maths/GeometryDistance.cc:1860:25: error: ‘((boost::tuples::cons<GPlatesMaths::UnitVector3D&, boost::tuples::null_type>*)((char*)&closest_positions_reversed + offsetof(boost::optional<boost::tuples::tuple<GPlatesMaths::UnitVector3D&, GPlatesMaths::UnitVector3D&, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type> >,boost::optional<boost::tuples::tuple<GPlatesMaths::UnitVector3D&, GPlatesMaths::UnitVector3D&, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type> >::<unnamed>.boost::optional_detail::optional_base<boost::tuples::tuple<GPlatesMaths::UnitVector3D&, GPlatesMaths::UnitVector3D&, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type> >::m_storage.boost::optional_detail::aligned_storage<boost::tuples::tuple<GPlatesMaths::UnitVector3D&, GPlatesMaths::UnitVector3D&, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type> >::dummy_)))[1].boost::tuples::cons<GPlatesMaths::UnitVector3D&, boost::tuples::null_type>::head’ is used uninitialized [-Werror=uninitialized]
cc1plus: some warnings being treated as errors
make[2]: *** [src/CMakeFiles/gplates-lib.dir/build.make:6519: src/CMakeFiles/gplates-lib.dir/maths/GeometryDistance.cc.o] Error 1
make[2]: *** Waiting for unfinished jobs....
make[1]: *** [CMakeFiles/Makefile2:591: src/CMakeFiles/gplates-lib.dir/all] Error 2
make: *** [Makefile:136: all] Error 2
Is there a way to fix this other than downgrading Boost to the previous version (which might break other things on my system that depend on it)?
Kind regards,
Robbie