[From nobody Mon Apr 20 17:51:11 2026
Received: (at maintonly) by bugs.debian.org; 13 Apr 2026 13:05:18 +0000
X-Spam-Checker-Version: SpamAssassin 4.0.1-bugs.debian.org_2005_01_02
 (2024-03-25) on buxtehude.debian.org
X-Spam-Level: 
X-Spam-Status: No, score=-116.6 required=4.0 tests=BAYES_00,
 BODY_INCLUDES_PACKAGE,DKIMWL_WL_HIGH,DKIM_SIGNED,DKIM_VALID,
 DKIM_VALID_AU,DKIM_VALID_EF,FOURLA,FROMDEVELOPER,FVGT_m_MULTI_ODD,
 HAS_PACKAGE,SPF_HELO_NONE,SPF_NONE,UNPARSEABLE_RELAY,
 USER_IN_DKIM_WELCOMELIST autolearn=ham autolearn_force=no
 version=4.0.1-bugs.debian.org_2005_01_02
X-Spam-Bayes: score:0.0000 Tokens: new, 77; hammy, 150; neutral, 171; spammy,
 0. spammytokens:
 hammytokens:0.000-+--Hx-spam-relays-external:sk:stravin,
 0.000-+--H*RT:sk:stravin, 0.000-+--Hx-spam-relays-external:311,
 0.000-+--H*RT:311, 0.000-+--H*RT:108
Return-path: &lt;ema@debian.org&gt;
Received: from stravinsky.debian.org ([2001:41b8:202:deb::311:108]:42792)
 by buxtehude.debian.org with esmtps
 (TLS1.3:ECDHE_SECP256R1__RSA_PSS_RSAE_SHA256__AES_256_GCM:256)
 (Exim 4.96) (envelope-from &lt;ema@debian.org&gt;) id 1wCGyc-002lMy-0K
 for maintonly@bugs.debian.org; Mon, 13 Apr 2026 13:05:18 +0000
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=debian.org; 
 s=smtpauto.stravinsky;
 h=X-Debian-User:Content-Transfer-Encoding:Content-Type
 :MIME-Version:Message-ID:Subject:To:From:Date:Reply-To:Cc:Content-ID:
 Content-Description:In-Reply-To:References;
 bh=dW+kkUcH7NaddMQ82GDuboA/3dlJilvxqBtNxtFLBGA=; b=F5I7CWYFXrJDMuZk1ShQHGrtAw
 VAZovVsLCw+C6ucmOgBhCRcmOaEZtWxj0r7Efi3g8nvr1xBYC4GkkPhnh5WUHscsBum4rbW5dbuyQ
 d2rkdbEHITd6S+hgYcX7XOi/LY+9adZWeo5bk5SmG5pqO2k8O5t/Gx8vqvSyWzV7ez4Yt5MToLHTa
 tl4QP+R91lJNQI2/ok/jUWCDTXqXlebqraSEthKDRf6CU327wZuug0I/Th3FySvIbdgO08bnM+Pjj
 jo/UnM8t7pSW/EgEmvQkIbF4dejM0E/3+rEkJrbEyQimXoY3rCXmEOiZ+zFFh9O+Up5U5Ab+vDW/5
 R/TGvUew==;
Received: from authenticated user by stravinsky.debian.org with esmtpsa
 (TLS1.3:ECDHE_SECP256R1__RSA_PSS_RSAE_SHA256__AES_256_GCM:256)
 (Exim 4.96) (envelope-from &lt;ema@debian.org&gt;) id 1wCGya-00CJOX-1Y
 for maintonly@bugs.debian.org; Mon, 13 Apr 2026 13:05:16 +0000
Date: Mon, 13 Apr 2026 15:05:16 +0200
From: Emanuele Rocca &lt;ema@debian.org&gt;
To: maintonly@bugs.debian.org
Subject: libboost-geometry-utils-perl: ftbfs with GCC-16
Message-ID: &lt;adzqDAAzKB0Apncn@ariel.home&gt;
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: quoted-printable
X-Debian-User: ema
Delivered-To: maintonly@bugs.debian.org

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

Hi,

libboost-geometry-utils-perl fails to build in a test rebuild on at least a=
md64 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-u=
tils-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=3Dgcc-16 CXX=3Dg++-16 explicitly,
or install the gcc, g++, gfortran, ... packages from experimental.

  apt-get -t=3Dexperimental install g++=20

Common build failures include unused (but set) variables, array subscripts
partly outside array bounds, and new/dropped symbols in Debian symbols file=
s.
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 pac=
kage
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 |             &gt;
      |             ~         =20
  864 |         &gt;::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 =E2=80=98static OutputIterator boost::geometry::detail::i=
ntersection::intersection_of_linestring_with_areal&lt;ReverseAreal, LineString=
Out, OverlayType&gt;::apply(const LineString&amp;, const Areal&amp;, OutputIterator, c=
onst Strategy&amp;) [with LineString =3D boost::geometry::model::linestring&lt;boo=
st::geometry::model::d2::point_xy&lt;double&gt; &gt;; Areal =3D boost::geometry::mod=
el::polygon&lt;boost::geometry::model::d2::point_xy&lt;double&gt;, false, false&gt;; Ou=
tputIterator =3D std::back_insert_iterator&lt;boost::geometry::model::multi_li=
nestring&lt;boost::geometry::model::linestring&lt;boost::geometry::model::d2::poi=
nt_xy&lt;double&gt; &gt; &gt; &gt;; Strategy =3D boost::geometry::strategy_intersection&lt;bo=
ost::geometry::cartesian_tag, boost::geometry::model::polygon&lt;boost::geomet=
ry::model::d2::point_xy&lt;double&gt;, false, false&gt;, boost::geometry::model::mul=
ti_linestring&lt;boost::geometry::model::linestring&lt;boost::geometry::model::d2=
::point_xy&lt;double&gt; &gt; &gt;, boost::geometry::model::d2::point_xy&lt;double&gt;, void&gt;=
; bool ReverseAreal =3D true; LineStringOut =3D boost::geometry::model::lin=
estring&lt;boost::geometry::model::d2::point_xy&lt;double&gt; &gt;; boost::geometry::ov=
erlay_type OverlayType =3D boost::geometry::overlay_intersection]=E2=80=99
  166 |         geometry::get_turns
      |         ~~~~~~~~~~~~~~~~~~~
  167 |             &lt;
      |             ~=20
  168 |                 false,
      |                 ~~~~~~
  169 |                 (OverlayType =3D=3D overlay_intersection ? ReverseA=
real : !ReverseAreal),
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~=
~~~~~~~~~~~~~~~~~~
  170 |                 detail::overlay::calculate_distance_policy
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  171 |             &gt;(linestring, areal, turns, policy);
      |             ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/boost/geometry/multi/algorithms/intersection.hpp:134:25:   required fro=
m =E2=80=98static OutputIterator boost::geometry::detail::intersection::int=
ersection_of_multi_linestring_with_areal&lt;ReverseAreal, LineStringOut, Overl=
ayType&gt;::apply(const MultiLinestring&amp;, const Areal&amp;, OutputIterator, const =
Strategy&amp;) [with MultiLinestring =3D boost::geometry::model::multi_linestri=
ng&lt;boost::geometry::model::linestring&lt;boost::geometry::model::d2::point_xy&lt;=
double&gt; &gt; &gt;; Areal =3D boost::geometry::model::polygon&lt;boost::geometry::mod=
el::d2::point_xy&lt;double&gt;, false, false&gt;; OutputIterator =3D std::back_inser=
t_iterator&lt;boost::geometry::model::multi_linestring&lt;boost::geometry::model:=
:linestring&lt;boost::geometry::model::d2::point_xy&lt;double&gt; &gt; &gt; &gt;; Strategy =
=3D boost::geometry::strategy_intersection&lt;boost::geometry::cartesian_tag, =
boost::geometry::model::polygon&lt;boost::geometry::model::d2::point_xy&lt;double=
&gt;, false, false&gt;, boost::geometry::model::multi_linestring&lt;boost::geometry:=
:model::linestring&lt;boost::geometry::model::d2::point_xy&lt;double&gt; &gt; &gt;, boost:=
:geometry::model::d2::point_xy&lt;double&gt;, void&gt;; bool ReverseAreal =3D true; =
LineStringOut =3D boost::geometry::model::linestring&lt;boost::geometry::model=
::d2::point_xy&lt;double&gt; &gt;; boost::geometry::overlay_type OverlayType =3D boo=
st::geometry::overlay_intersection]=E2=80=99
  131 |             out =3D intersection_of_linestring_with_areal
      |                   ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  132 |                 &lt;
      |                 ~       =20
  133 |                     ReverseAreal, LineStringOut, OverlayType
      |                     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  134 |                 &gt;::apply(*it, areal, out, strategy);
      |                 ~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~
src/boost/geometry/multi/algorithms/intersection.hpp:163:21:   required fro=
m =E2=80=98static OutputIterator boost::geometry::detail::intersection::int=
ersection_of_areal_with_multi_linestring&lt;ReverseAreal, LineStringOut, Overl=
ayType&gt;::apply(const Areal&amp;, const MultiLinestring&amp;, OutputIterator, const =
Strategy&amp;) [with Areal =3D boost::geometry::model::polygon&lt;boost::geometry:=
:model::d2::point_xy&lt;double&gt;, false, false&gt;; MultiLinestring =3D boost::geo=
metry::model::multi_linestring&lt;boost::geometry::model::linestring&lt;boost::ge=
ometry::model::d2::point_xy&lt;double&gt; &gt; &gt;; OutputIterator =3D std::back_inser=
t_iterator&lt;boost::geometry::model::multi_linestring&lt;boost::geometry::model:=
:linestring&lt;boost::geometry::model::d2::point_xy&lt;double&gt; &gt; &gt; &gt;; Strategy =
=3D boost::geometry::strategy_intersection&lt;boost::geometry::cartesian_tag, =
boost::geometry::model::polygon&lt;boost::geometry::model::d2::point_xy&lt;double=
&gt;, false, false&gt;, boost::geometry::model::multi_linestring&lt;boost::geometry:=
:model::linestring&lt;boost::geometry::model::d2::point_xy&lt;double&gt; &gt; &gt;, boost:=
:geometry::model::d2::point_xy&lt;double&gt;, void&gt;; bool ReverseAreal =3D true; =
LineStringOut =3D boost::geometry::model::linestring&lt;boost::geometry::model=
::d2::point_xy&lt;double&gt; &gt;; boost::geometry::overlay_type OverlayType =3D boo=
st::geometry::overlay_intersection]=E2=80=99
  160 |         return intersection_of_multi_linestring_with_areal
      |                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  161 |             &lt;
      |             ~       =20
  162 |                 ReverseAreal, LineStringOut, OverlayType
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  163 |             &gt;::apply(ml, areal, out, strategy);
      |             ~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~
src/boost/geometry/algorithms/intersection.hpp:103:17:   required from =E2=
=80=98static bool boost::geometry::dispatch::intersection&lt;Geometry1, Geomet=
ry2, Tag1, Tag2, Reverse&gt;::apply(const Geometry1&amp;, const Geometry2&amp;, Geomet=
ryOut&amp;, const Strategy&amp;) [with GeometryOut =3D boost::geometry::model::mult=
i_linestring&lt;boost::geometry::model::linestring&lt;boost::geometry::model::d2:=
:point_xy&lt;double&gt; &gt; &gt;; Strategy =3D boost::geometry::strategy_intersection&lt;=
boost::geometry::cartesian_tag, boost::geometry::model::polygon&lt;boost::geom=
etry::model::d2::point_xy&lt;double&gt;, false, false&gt;, boost::geometry::model::m=
ulti_linestring&lt;boost::geometry::model::linestring&lt;boost::geometry::model::=
d2::point_xy&lt;double&gt; &gt; &gt;, boost::geometry::model::d2::point_xy&lt;double&gt;, voi=
d&gt;; Geometry1 =3D boost::geometry::model::polygon&lt;boost::geometry::model::d=
2::point_xy&lt;double&gt;, false, false&gt;; Geometry2 =3D boost::geometry::model::m=
ulti_linestring&lt;boost::geometry::model::linestring&lt;boost::geometry::model::=
d2::point_xy&lt;double&gt; &gt; &gt;; Tag1 =3D boost::geometry::polygon_tag; Tag2 =3D b=
oost::geometry::multi_linestring_tag; bool Reverse =3D false]=E2=80=99
   99 |         intersection_insert
      |         ~~~~~~~~~~~~~~~~~~~
  100 |         &lt;
      |         ~       =20
  101 |             Geometry1, Geometry2, OneOut,
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  102 |             overlay_intersection
      |             ~~~~~~~~~~~~~~~~~~~~
  103 |         &gt;::apply(geometry1, geometry2, std::back_inserter(geometry_=
out), strategy);
      |         ~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~=
~~~~~~~~~~~~~~~
src/boost/geometry/algorithms/intersection.hpp:201:20:   required from =E2=
=80=98bool boost::geometry::intersection(const Geometry1&amp;, const Geometry2&amp;=
, GeometryOut&amp;) [with Geometry1 =3D model::polygon&lt;model::d2::point_xy&lt;doub=
le&gt;, false, false&gt;; Geometry2 =3D model::multi_linestring&lt;model::linestring=
&lt;model::d2::point_xy&lt;double&gt; &gt; &gt;; GeometryOut =3D model::multi_linestring&lt;m=
odel::linestring&lt;model::d2::point_xy&lt;double&gt; &gt; &gt;]=E2=80=99
  198 |     return dispatch::intersection&lt;
      |            ~~~~~~~~~~~~~~~~~~~~~~~
  199 |                Geometry1,
      |                ~~~~~~~~~~
  200 |                Geometry2
      |                ~~~~~~~~~
  201 |            &gt;::apply(geometry1, geometry2, geometry_out, strategy());
      |            ~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/bin/perl -MExtUtils::XSpp::Cmd -e xspp -- -t &quot;../xsp/typemap.xspt&quot;  &quot;.=
=2E/xsp/Utils.xsp&quot;:79:34:   required from here
src/boost/geometry/algorithms/detail/sections/sectionalize.hpp:84:35: warni=
ng: ISO C++17 does not allow =E2=80=98register=E2=80=99 storage class speci=
fier [-Wregister]
   84 |         for (register std::size_t i =3D 0; i &lt; 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 s=
tatus 2
]