Subject: force-ip-protocol: ftbfs with GCC-15

From: Matthias Klose <[email-masked]>
Date: Mon, 17 Feb 2025 17:13:50 +0000

Package: src:force-ip-protocol
Version: 0.2.0-3
Severity: important
Tags: sid forky
User: [email-masked]
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/force-ip-protocol_0.2.0-3_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

[...]
checking for sysroot... no
checking for a working dd... /usr/bin/dd
checking how to truncate binary pipes... /usr/bin/dd bs=4096 count=1
checking for mt... no
checking if : is a manifest tool... no
checking for stdio.h... yes
checking for stdlib.h... yes
checking for string.h... yes
checking for inttypes.h... yes
checking for stdint.h... yes
checking for strings.h... yes
checking for sys/stat.h... yes
checking for sys/types.h... yes
checking for unistd.h... yes
checking for dlfcn.h... yes
checking for objdir... .libs
checking if gcc supports -fno-rtti -fno-exceptions... no
checking for gcc option to produce PIC... -fPIC -DPIC
checking if gcc PIC flag -fPIC -DPIC works... yes
checking if gcc static flag -static works... yes
checking if gcc supports -c -o file.o... yes
checking if gcc supports -c -o file.o... (cached) yes
checking whether the gcc linker (/usr/bin/ld -m elf_x86_64) supports shared libraries... yes
checking whether -lc should be explicitly linked in... no
checking dynamic linker characteristics... GNU/Linux ld.so
checking how to hardcode library paths into programs... immediate
checking whether stripping libraries is possible... yes
checking if libtool supports shared libraries... yes
checking whether to build shared libraries... yes
checking whether to build static libraries... yes
checking for sys/socket.h... yes
checking for netdb.h... yes
checking for gcc... (cached) gcc
checking whether the compiler supports GNU C... (cached) yes
checking whether gcc accepts -g... (cached) yes
checking for gcc option to enable C11 features... (cached) none needed
checking whether gcc understands -c and -o together... (cached) yes
checking dependency style of gcc... (cached) none
checking that generated files are newer than configure... done
configure: creating ./config.status
config.status: creating Makefile
config.status: creating config.h
config.status: executing depfiles commands
config.status: executing libtool commands
   dh_auto_build
	make -j8
make[1]: Entering directory '/build/reproducible-path/force-ip-protocol-0.2.0'
make  all-am
make[2]: Entering directory '/build/reproducible-path/force-ip-protocol-0.2.0'
/bin/bash ./libtool  --tag=CC   --mode=compile gcc -DHAVE_CONFIG_H -I.   -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -DUSE_IPV4 -g -O2 -Werror=implicit-function-declaration -ffile-prefix-map=/build/reproducible-path/force-ip-protocol-0.2.0=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -fcf-protection -c -o libforce_ip_protocol_ipv4_la-force-ip-protocol-ipv4-or-ipv6.lo `test -f 'force-ip-protocol-ipv4-or-ipv6.c' || echo './'`force-ip-protocol-ipv4-or-ipv6.c
/bin/bash ./libtool  --tag=CC   --mode=compile gcc -DHAVE_CONFIG_H -I.   -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -DUSE_IPV6 -g -O2 -Werror=implicit-function-declaration -ffile-prefix-map=/build/reproducible-path/force-ip-protocol-0.2.0=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -fcf-protection -c -o libforce_ip_protocol_ipv6_la-force-ip-protocol-ipv4-or-ipv6.lo `test -f 'force-ip-protocol-ipv4-or-ipv6.c' || echo './'`force-ip-protocol-ipv4-or-ipv6.c
libtool: compile:  gcc -DHAVE_CONFIG_H -I. -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -DUSE_IPV6 -g -O2 -Werror=implicit-function-declaration -ffile-prefix-map=/build/reproducible-path/force-ip-protocol-0.2.0=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -fcf-protection -c force-ip-protocol-ipv4-or-ipv6.c  -fPIC -DPIC -o .libs/libforce_ip_protocol_ipv6_la-force-ip-protocol-ipv4-or-ipv6.o
force-ip-protocol-ipv4-or-ipv6.c: In function 'getaddrinfo':
force-ip-protocol-ipv4-or-ipv6.c:49:17: error: too many arguments to function 'getaddrinfo_org'; expected 0, have 4
   49 |         return (getaddrinfo_org(hostname, servname, hints2, res));
      |                 ^~~~~~~~~~~~~~~ ~~~~~~~~
libtool: compile:  gcc -DHAVE_CONFIG_H -I. -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -DUSE_IPV4 -g -O2 -Werror=implicit-function-declaration -ffile-prefix-map=/build/reproducible-path/force-ip-protocol-0.2.0=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -fcf-protection -c force-ip-protocol-ipv4-or-ipv6.c  -fPIC -DPIC -o .libs/libforce_ip_protocol_ipv4_la-force-ip-protocol-ipv4-or-ipv6.o
make[2]: *** [Makefile:532: libforce_ip_protocol_ipv6_la-force-ip-protocol-ipv4-or-ipv6.lo] Error 1
make[2]: *** Waiting for unfinished jobs....
force-ip-protocol-ipv4-or-ipv6.c: In function 'getaddrinfo':
force-ip-protocol-ipv4-or-ipv6.c:49:17: error: too many arguments to function 'getaddrinfo_org'; expected 0, have 4
   49 |         return (getaddrinfo_org(hostname, servname, hints2, res));
      |                 ^~~~~~~~~~~~~~~ ~~~~~~~~
make[2]: *** [Makefile:525: libforce_ip_protocol_ipv4_la-force-ip-protocol-ipv4-or-ipv6.lo] Error 1
make[2]: Leaving directory '/build/reproducible-path/force-ip-protocol-0.2.0'
make[1]: *** [Makefile:392: all] Error 2
make[1]: Leaving directory '/build/reproducible-path/force-ip-protocol-0.2.0'
dh_auto_build: error: make -j8 returned exit code 2
make: *** [debian/rules:6: binary] Error 25
dpkg-buildpackage: error: debian/rules binary subprocess returned exit status 2