Bug#1133511: libboost-geometry-utils-perl: ftbfs with GCC-16

Emanuele Rocca ema at debian.org
Mon Apr 13 14:05:16 BST 2026


Package: src:libboost-geometry-utils-perl
Version: 0.15-3
Severity: important
Tags: sid forky ftbfs
User: debian-gcc at lists.debian.org
Usertags: ftbfs-gcc-16

Hi,

libboost-geometry-utils-perl fails to build in a test rebuild on at least amd64 and arm64 with
gcc-16/g++-16, but builds properly with gcc-15/g++-15. The severity of this
report will be raised before the forky release.

The full build log can be found at:
https://people.debian.org/~ema/gcc-16-rebuilds/output-1/libboost-geometry-utils-perl_arm64.build.xz

The last lines of the build log are at the end of this report.

To build with GCC 16, either set CC=gcc-16 CXX=g++-16 explicitly,
or install the gcc, g++, gfortran, ... packages from experimental.

  apt-get -t=experimental install g++ 

Common build failures include unused (but set) variables, array subscripts
partly outside array bounds, and new/dropped symbols in Debian symbols files.
For other C/C++ related build failures see the porting guide at
http://gcc.gnu.org/gcc-16/porting_to.html

Please only close this issue after double-checking that the package can be
built correctly with GCC 16.

Please do not reassign this bug to another package. If a fix in another package
is required, then file a bug for the other package (or clone), and mark this
bug as blocked by the bug in the other package.

[...]


  862 |                 InterruptPolicy
      |                 ~~~~~~~~~~~~~~~
  863 |             >
      |             ~          
  864 |         >::type::apply(
      |         ~~~~~~~~~~~~~~^
  865 |             0, geometry1,
      |             ~~~~~~~~~~~~~
  866 |             1, geometry2,
      |             ~~~~~~~~~~~~~
  867 |             turns, interrupt_policy);
      |             ~~~~~~~~~~~~~~~~~~~~~~~~
src/boost/geometry/algorithms/detail/overlay/intersection_insert.hpp:171:14:   required from ‘static OutputIterator boost::geometry::detail::intersection::intersection_of_linestring_with_areal<ReverseAreal, LineStringOut, OverlayType>::apply(const LineString&, const Areal&, OutputIterator, const Strategy&) [with LineString = boost::geometry::model::linestring<boost::geometry::model::d2::point_xy<double> >; Areal = boost::geometry::model::polygon<boost::geometry::model::d2::point_xy<double>, false, false>; OutputIterator = std::back_insert_iterator<boost::geometry::model::multi_linestring<boost::geometry::model::linestring<boost::geometry::model::d2::point_xy<double> > > >; Strategy = boost::geometry::strategy_intersection<boost::geometry::cartesian_tag, boost::geometry::model::polygon<boost::geometry::model::d2::point_xy<double>, false, false>, boost::geometry::model::multi_linestring<boost::geometry::model::linestring<boost::geometry::model::d2::point_xy<double> > >, boost::geometry::model::d2::point_xy<double>, void>; bool ReverseAreal = true; LineStringOut = boost::geometry::model::linestring<boost::geometry::model::d2::point_xy<double> >; boost::geometry::overlay_type OverlayType = boost::geometry::overlay_intersection]’
  166 |         geometry::get_turns
      |         ~~~~~~~~~~~~~~~~~~~
  167 |             <
      |             ~ 
  168 |                 false,
      |                 ~~~~~~
  169 |                 (OverlayType == overlay_intersection ? ReverseAreal : !ReverseAreal),
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  170 |                 detail::overlay::calculate_distance_policy
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  171 |             >(linestring, areal, turns, policy);
      |             ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/boost/geometry/multi/algorithms/intersection.hpp:134:25:   required from ‘static OutputIterator boost::geometry::detail::intersection::intersection_of_multi_linestring_with_areal<ReverseAreal, LineStringOut, OverlayType>::apply(const MultiLinestring&, const Areal&, OutputIterator, const Strategy&) [with MultiLinestring = boost::geometry::model::multi_linestring<boost::geometry::model::linestring<boost::geometry::model::d2::point_xy<double> > >; Areal = boost::geometry::model::polygon<boost::geometry::model::d2::point_xy<double>, false, false>; OutputIterator = std::back_insert_iterator<boost::geometry::model::multi_linestring<boost::geometry::model::linestring<boost::geometry::model::d2::point_xy<double> > > >; Strategy = boost::geometry::strategy_intersection<boost::geometry::cartesian_tag, boost::geometry::model::polygon<boost::geometry::model::d2::point_xy<double>, false, false>, boost::geometry::model::multi_linestring<boost::geometry::model::linestring<boost::geometry::model::d2::point_xy<double> > >, boost::geometry::model::d2::point_xy<double>, void>; bool ReverseAreal = true; LineStringOut = boost::geometry::model::linestring<boost::geometry::model::d2::point_xy<double> >; boost::geometry::overlay_type OverlayType = boost::geometry::overlay_intersection]’
  131 |             out = intersection_of_linestring_with_areal
      |                   ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  132 |                 <
      |                 ~        
  133 |                     ReverseAreal, LineStringOut, OverlayType
      |                     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  134 |                 >::apply(*it, areal, out, strategy);
      |                 ~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~
src/boost/geometry/multi/algorithms/intersection.hpp:163:21:   required from ‘static OutputIterator boost::geometry::detail::intersection::intersection_of_areal_with_multi_linestring<ReverseAreal, LineStringOut, OverlayType>::apply(const Areal&, const MultiLinestring&, OutputIterator, const Strategy&) [with Areal = boost::geometry::model::polygon<boost::geometry::model::d2::point_xy<double>, false, false>; MultiLinestring = boost::geometry::model::multi_linestring<boost::geometry::model::linestring<boost::geometry::model::d2::point_xy<double> > >; OutputIterator = std::back_insert_iterator<boost::geometry::model::multi_linestring<boost::geometry::model::linestring<boost::geometry::model::d2::point_xy<double> > > >; Strategy = boost::geometry::strategy_intersection<boost::geometry::cartesian_tag, boost::geometry::model::polygon<boost::geometry::model::d2::point_xy<double>, false, false>, boost::geometry::model::multi_linestring<boost::geometry::model::linestring<boost::geometry::model::d2::point_xy<double> > >, boost::geometry::model::d2::point_xy<double>, void>; bool ReverseAreal = true; LineStringOut = boost::geometry::model::linestring<boost::geometry::model::d2::point_xy<double> >; boost::geometry::overlay_type OverlayType = boost::geometry::overlay_intersection]’
  160 |         return intersection_of_multi_linestring_with_areal
      |                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  161 |             <
      |             ~        
  162 |                 ReverseAreal, LineStringOut, OverlayType
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  163 |             >::apply(ml, areal, out, strategy);
      |             ~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~
src/boost/geometry/algorithms/intersection.hpp:103:17:   required from ‘static bool boost::geometry::dispatch::intersection<Geometry1, Geometry2, Tag1, Tag2, Reverse>::apply(const Geometry1&, const Geometry2&, GeometryOut&, const Strategy&) [with GeometryOut = boost::geometry::model::multi_linestring<boost::geometry::model::linestring<boost::geometry::model::d2::point_xy<double> > >; Strategy = boost::geometry::strategy_intersection<boost::geometry::cartesian_tag, boost::geometry::model::polygon<boost::geometry::model::d2::point_xy<double>, false, false>, boost::geometry::model::multi_linestring<boost::geometry::model::linestring<boost::geometry::model::d2::point_xy<double> > >, boost::geometry::model::d2::point_xy<double>, void>; Geometry1 = boost::geometry::model::polygon<boost::geometry::model::d2::point_xy<double>, false, false>; Geometry2 = boost::geometry::model::multi_linestring<boost::geometry::model::linestring<boost::geometry::model::d2::point_xy<double> > >; Tag1 = boost::geometry::polygon_tag; Tag2 = boost::geometry::multi_linestring_tag; bool Reverse = false]’
   99 |         intersection_insert
      |         ~~~~~~~~~~~~~~~~~~~
  100 |         <
      |         ~        
  101 |             Geometry1, Geometry2, OneOut,
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  102 |             overlay_intersection
      |             ~~~~~~~~~~~~~~~~~~~~
  103 |         >::apply(geometry1, geometry2, std::back_inserter(geometry_out), strategy);
      |         ~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/boost/geometry/algorithms/intersection.hpp:201:20:   required from ‘bool boost::geometry::intersection(const Geometry1&, const Geometry2&, GeometryOut&) [with Geometry1 = model::polygon<model::d2::point_xy<double>, false, false>; Geometry2 = model::multi_linestring<model::linestring<model::d2::point_xy<double> > >; GeometryOut = model::multi_linestring<model::linestring<model::d2::point_xy<double> > >]’
  198 |     return dispatch::intersection<
      |            ~~~~~~~~~~~~~~~~~~~~~~~
  199 |                Geometry1,
      |                ~~~~~~~~~~
  200 |                Geometry2
      |                ~~~~~~~~~
  201 |            >::apply(geometry1, geometry2, geometry_out, strategy());
      |            ~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/bin/perl -MExtUtils::XSpp::Cmd -e xspp -- -t "../xsp/typemap.xspt"  "../xsp/Utils.xsp":79:34:   required from here
src/boost/geometry/algorithms/detail/sections/sectionalize.hpp:84:35: warning: ISO C++17 does not allow ‘register’ storage class specifier [-Wregister]
   84 |         for (register std::size_t i = 0; i < DimensionCount; i++)
      |                                   ^
error building buildtmp/Utils.o from 'buildtmp/Utils.c' at /usr/share/perl/5.40/ExtUtils/CBuilder/Base.pm line 185.
dh_auto_build: error: /usr/bin/perl Build returned exit code 2
make: *** [debian/rules:4: binary] Error 25
dpkg-buildpackage: error: debian/rules binary subprocess failed with exit status 2



More information about the pkg-perl-maintainers mailing list