Bug#1097234: libnet-patricia-perl: ftbfs with GCC-15

Matthias Klose doko at debian.org
Mon Feb 17 17:32:40 GMT 2025


Package: src:libnet-patricia-perl
Version: 1.22-2
Severity: important
Tags: sid forky
User: debian-gcc at lists.debian.org
Usertags: ftbfs-gcc-15

[This bug is NOT targeted to the upcoming trixie release]

Please keep this issue open in the bug tracker for the package it
was filed for.  If a fix in another package is required, please
file a bug for the other package (or clone), and add a block in this
package. Please keep the issue open until the package can be built in
a follow-up test rebuild.

The package fails to build in a test rebuild on at least amd64 with
gcc-15/g++-15, but succeeds to build with gcc-14/g++-14. The
severity of this report will be raised before the forky release.

The full build log can be found at:
http://qa-logs.debian.net/2025/02/16/amd64exp/libnet-patricia-perl_1.22-2_unstable_gccexp.log.gz
The last lines of the build log are at the end of this report.

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

  apt-get -t=experimental install g++ 

GCC 15 now defaults to the C23/C++23 standards, exposing many FTBFS.
Other Common build failures are new warnings resulting in build failures
with -Werror turned on, or new/dropped symbols in Debian symbols files.
For other C/C++ related build failures see the porting guide at
http://gcc.gnu.org/gcc-15/porting_to.html

[...]
	/usr/bin/perl Makefile.PL INSTALLDIRS=vendor "OPTIMIZE=-g -O2 -Werror=implicit-function-declaration -ffile-prefix-map=/build/reproducible-path/libnet-patricia-perl-1.22=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -fcf-protection -Wdate-time -D_FORTIFY_SOURCE=2" "LD=x86_64-linux-gnu-gcc -g -O2 -Werror=implicit-function-declaration -ffile-prefix-map=/build/reproducible-path/libnet-patricia-perl-1.22=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -fcf-protection -Wl,-z,relro"
Checking if your kit is complete...
Looks good
MakeMaker (v7.70)
Warning (non-fatal): Target 'dynamic' depends on targets in skipped section 'dynamic_lib'
Warning (non-fatal): Target 'static' depends on targets in skipped section 'static_lib'
Generating a Unix-style Makefile
Writing Makefile for Net::Patricia::libpatricia
Writing MYMETA.yml and MYMETA.json
Generating a Unix-style Makefile
Writing Makefile for Net::Patricia
Writing MYMETA.yml and MYMETA.json
   dh_auto_build
	make -j8
make[1]: Entering directory '/build/reproducible-path/libnet-patricia-perl-1.22'
cd libpatricia && make LIBPERL_A="libperl.a" LINKTYPE="dynamic" OPTIMIZE="-g -O2 -Werror=implicit-function-declaration -ffile-prefix-map=/build/reproducible-path/libnet-patricia-perl-1.22=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -fcf-protection -Wdate-time -D_FORTIFY_SOURCE=2" LD="x86_64-linux-gnu-gcc -g -O2 -Werror=implicit-function-declaration -ffile-prefix-map=/build/reproducible-path/libnet-patricia-perl-1.22=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -fcf-protection -Wl,-z,relro" PREFIX="/usr" PASTHRU_DEFINE=' ' PASTHRU_INC=' '
make[2]: Entering directory '/build/reproducible-path/libnet-patricia-perl-1.22/libpatricia'
x86_64-linux-gnu-gcc -c   -D_REENTRANT -D_GNU_SOURCE -DDEBIAN -fwrapv -fno-strict-aliasing -pipe -I/usr/local/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -g -O2 -Werror=implicit-function-declaration -ffile-prefix-map=/build/reproducible-path/libnet-patricia-perl-1.22=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -fcf-protection -Wdate-time -D_FORTIFY_SOURCE=2   -DVERSION=\"\" -DXS_VERSION=\"\" -fPIC "-I/usr/lib/x86_64-linux-gnu/perl/5.40/CORE"   patricia.c
"/usr/bin/perl" "/usr/share/perl/5.40/ExtUtils/xsubpp"  -typemap '/usr/share/perl/5.40/ExtUtils/typemap' -typemap '/build/reproducible-path/libnet-patricia-perl-1.22/typemap'  Patricia.xs > Patricia.xsc
Running Mkbootstrap for Patricia ()
chmod 644 "Patricia.bs"
cp Patricia.pm blib/lib/Net/Patricia.pm
"/usr/bin/perl" -MExtUtils::Command::MM -e 'cp_nonempty' -- Patricia.bs blib/arch/auto/Net/Patricia/Patricia.bs 644
mv Patricia.xsc Patricia.c
x86_64-linux-gnu-gcc -c   -D_REENTRANT -D_GNU_SOURCE -DDEBIAN -fwrapv -fno-strict-aliasing -pipe -I/usr/local/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -g -O2 -Werror=implicit-function-declaration -ffile-prefix-map=/build/reproducible-path/libnet-patricia-perl-1.22=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -fcf-protection -Wdate-time -D_FORTIFY_SOURCE=2   -DVERSION=\"1.22\" -DXS_VERSION=\"1.22\" -fPIC "-I/usr/lib/x86_64-linux-gnu/perl/5.40/CORE"   Patricia.c
patricia.c: In function ‘Clear_Patricia’:
patricia.c:381:21: error: too many arguments to function ‘func’; expected 0, have 1
  381 |                     func (Xrn->data);
      |                     ^~~~  ~~~~~~~~~
patricia.c: In function ‘patricia_process’:
patricia.c:428:9: error: too many arguments to function ‘func’; expected 0, have 2
  428 |         func (node->prefix, node->data);
      |         ^~~~  ~~~~~~~~~~~~
patricia.c: In function ‘patricia_walk_inorder’:
patricia.c:443:9: error: too many arguments to function ‘func’; expected 0, have 2
  443 |         func(node->prefix, node->data);
      |         ^~~~ ~~~~~~~~~~~~
make[2]: *** [Makefile:315: patricia.o] Error 1
make[2]: Leaving directory '/build/reproducible-path/libnet-patricia-perl-1.22/libpatricia'
make[1]: *** [Makefile:1307: libpatricia/libpatricia.a] Error 2
make[1]: *** Waiting for unfinished jobs....
Patricia.xs: In function ‘not_here’:
Patricia.xs:47:1: warning: old-style function definition [-Wold-style-definition]
   47 | not_here(s)
      | ^~~~~~~~
Patricia.xs: In function ‘constant’:
Patricia.xs:55:1: warning: old-style function definition [-Wold-style-definition]
   55 | constant(name, arg)
      | ^~~~~~~~
Patricia.xs: In function ‘XS_Net__Patricia_DESTROY’:
Patricia.xs:537:32: error: passing argument 2 of ‘Destroy_Patricia’ from incompatible pointer type [-Wincompatible-pointer-types]
  537 |         Destroy_Patricia(tree, deref_data);
      |                                ^~~~~~~~~~
      |                                |
      |                                void (*)(SV *) {aka void (*)(struct sv *)}
In file included from Patricia.xs:14:
libpatricia/patricia.h:89:61: note: expected ‘void_fn_t’ {aka ‘void (*)(void)’} but argument is of type ‘void (*)(SV *)’ {aka ‘void (*)(struct sv *)’}
   89 | void Destroy_Patricia (patricia_tree_t *patricia, void_fn_t func);
      |                                                   ~~~~~~~~~~^~~~
Patricia.xs:184:13: note: ‘deref_data’ declared here
  184 | static void deref_data(SV *data) {
      |             ^~~~~~~~~~
libpatricia/patricia.h:21:16: note: ‘void_fn_t’ declared here
   21 | typedef void (*void_fn_t)();
      |                ^~~~~~~~~
make[1]: *** [Makefile:340: Patricia.o] Error 1
make[1]: Leaving directory '/build/reproducible-path/libnet-patricia-perl-1.22'
dh_auto_build: error: make -j8 returned exit code 2
make: *** [debian/rules:4: binary] Error 25
dpkg-buildpackage: error: debian/rules binary subprocess returned exit status 2



More information about the pkg-perl-maintainers mailing list