Bug#1096265: 4g8: ftbfs with GCC-15
Package: src:4g8
Version: 1.0-6
Severity: important
Tags: sid forky
User: debian-gcc@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/4g8_1.0-6_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
[...]
utils.c:437:30: warning: pointer targets in passing argument 2 of ‘strtok’ differ in signedness [-Wpointer-sign]
437 | eptr = strtok(NULL, delim))
| ^~~~~
| |
| u_int8_t * {aka unsigned char *}
/usr/include/string.h:356:67: note: expected ‘const char * restrict’ but argument is of type ‘u_int8_t *’ {aka ‘unsigned char *’}
356 | extern char *strtok (char *__restrict __s, const char *__restrict __delim)
| ~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~
utils.c:437:15: warning: pointer targets in assignment from ‘char *’ to ‘u_int8_t *’ {aka ‘unsigned char *’} differ in signedness [-Wpointer-sign]
437 | eptr = strtok(NULL, delim))
| ^
utils.c:439:29: warning: pointer targets in passing argument 1 of ‘strtol’ differ in signedness [-Wpointer-sign]
439 | if((base16 = strtol(eptr, 0, 16)) > 0xff)
| ^~~~
| |
| u_int8_t * {aka unsigned char *}
In file included from /usr/include/libnet.h:58:
/usr/include/stdlib.h:177:48: note: expected ‘const char * restrict’ but argument is of type ‘u_int8_t *’ {aka ‘unsigned char *’}
177 | extern long int strtol (const char *__restrict __nptr,
| ~~~~~~~~~~~~~~~~~~~~~~~^~~~~~
utils.c: In function ‘retrieve_rand_ethernet_addr’:
utils.c:468:20: warning: pointer targets in passing argument 1 of ‘sprintf’ differ in signedness [-Wpointer-sign]
468 | sprintf(eaddr, "%s:%0x", eaddr, oct);
| ^~~~~
| |
| u_int8_t * {aka unsigned char *}
/usr/include/x86_64-linux-gnu/bits/stdio2.h:28:1: note: expected ‘char *’ but argument is of type ‘u_int8_t *’ {aka ‘unsigned char *’}
28 | __NTH (sprintf (char *__restrict __s, const char *__restrict __fmt, ...))
| ^~~~~
utils.c:470:20: warning: pointer targets in passing argument 1 of ‘sprintf’ differ in signedness [-Wpointer-sign]
470 | sprintf(eaddr, "%0x", oct);
| ^~~~~
| |
| u_int8_t * {aka unsigned char *}
/usr/include/x86_64-linux-gnu/bits/stdio2.h:28:1: note: expected ‘char *’ but argument is of type ‘u_int8_t *’ {aka ‘unsigned char *’}
28 | __NTH (sprintf (char *__restrict __s, const char *__restrict __fmt, ...))
| ^~~~~
In file included from /usr/include/stdio.h:970:
In function ‘vsnprintf’,
inlined from ‘print_separator’ at utils.c:88:5:
/usr/include/x86_64-linux-gnu/bits/stdio2.h:100:10: warning: ‘__builtin___vsnprintf_chk’ specified bound 256 exceeds destination size 255 [-Wstringop-overflow=]
100 | return __builtin___vsnprintf_chk (__s, __n, __USE_FORTIFY_LEVEL - 1,
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
101 | __glibc_objsize (__s), __fmt, __ap);
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
utils.c: In function ‘format_ethernet_addr’:
utils.c:428:9: warning: ‘__builtin_strncpy’ specified bound 18 equals destination size [-Wstringop-truncation]
428 | strncpy(o_ethstr, ethstr, 18);
| ^
In function ‘sprintf’,
inlined from ‘retrieve_rand_ethernet_addr’ at utils.c:468:12:
/usr/include/x86_64-linux-gnu/bits/stdio2.h:30:10: warning: ‘__builtin___sprintf_chk’ argument 5 overlaps destination object ‘eaddr’ [-Wrestrict]
30 | return __builtin___sprintf_chk (__s, __USE_FORTIFY_LEVEL - 1,
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
31 | __glibc_objsize (__s), __fmt,
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
32 | __va_arg_pack ());
| ~~~~~~~~~~~~~~~~~
utils.c: In function ‘retrieve_rand_ethernet_addr’:
utils.c:455:39: note: destination object referenced by ‘restrict’-qualified argument 1 was declared here
455 | retrieve_rand_ethernet_addr(u_int8_t *eaddr)
| ~~~~~~~~~~^~~~~
make[3]: Leaving directory '/build/reproducible-path/4g8-1.0/src'
make[2]: *** [Makefile:398: all-recursive] Error 1
make[2]: Leaving directory '/build/reproducible-path/4g8-1.0'
make[1]: *** [Makefile:338: all] Error 2
make[1]: Leaving directory '/build/reproducible-path/4g8-1.0'
dh_auto_build: error: make -j8 returned exit code 2
make: *** [debian/rules:17: binary] Error 25
dpkg-buildpackage: error: debian/rules binary subprocess returned exit status 2
Reply to: