#1097978 tcptrace: ftbfs with GCC-15

#1097978#5
Date:
2025-02-17 17:56:34 UTC
From:
To:
[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/tcptrace_6.6.7-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

[...]
 3157 |                        seq, id, pnum,pshd->hwdup_packnum);
      |                        ~~~
      |                        |
      |                        seqnum {aka unsigned int}
trace.c: In function ‘dotrace’:
trace.c:2071:10: warning: ‘__builtin___strncat_chk’ specified bound depends on the length of the source argument [-Wstringop-overflow=]
 2071 |          strncat(buf1, buf2, strlen(buf2));
      |          ^
trace.c:2071:30: note: length computed here
 2071 |          strncat(buf1, buf2, strlen(buf2));
      |                              ^~~~~~~~~~~~
trace.c:2064:10: warning: ‘__builtin___strncat_chk’ specified bound depends on the length of the source argument [-Wstringop-overflow=]
 2064 |          strncat(buf1, buf2, strlen(buf2));
      |          ^
trace.c:2064:30: note: length computed here
 2064 |          strncat(buf1, buf2, strlen(buf2));
      |                              ^~~~~~~~~~~~
trace.c:2083:10: warning: ‘__builtin___strncat_chk’ specified bound depends on the length of the source argument [-Wstringop-overflow=]
 2083 |          strncat(buf1, buf2, strlen(buf2));
      |          ^
trace.c:2083:30: note: length computed here
 2083 |          strncat(buf1, buf2, strlen(buf2));
      |                              ^~~~~~~~~~~~
trace.c:2089:10: warning: ‘__builtin___strncat_chk’ specified bound depends on the length of the source argument [-Wstringop-overflow=]
 2089 |          strncat(buf1, buf2, strlen(buf2));
      |          ^
trace.c:2089:30: note: length computed here
 2089 |          strncat(buf1, buf2, strlen(buf2));
      |                              ^~~~~~~~~~~~
trace.c:2095:10: warning: ‘__builtin___strncat_chk’ specified bound depends on the length of the source argument [-Wstringop-overflow=]
 2095 |          strncat(buf1, buf2, strlen(buf2));
      |          ^
trace.c:2095:30: note: length computed here
 2095 |          strncat(buf1, buf2, strlen(buf2));
      |                              ^~~~~~~~~~~~
trace.c:2102:10: warning: ‘__builtin___strncat_chk’ specified bound depends on the length of the source argument [-Wstringop-overflow=]
 2102 |          strncat(buf1, buf2, strlen(buf2));
      |          ^
trace.c:2102:30: note: length computed here
 2102 |          strncat(buf1, buf2, strlen(buf2));
      |                              ^~~~~~~~~~~~
gcc -O2 -g -O2 -Werror=implicit-function-declaration -ffile-prefix-map=/build/reproducible-path/tcptrace-6.6.7=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -fcf-protection -DGUNZIP="\"gunzip\"" -DBUNZIP2="\"bunzip2\"" -DLOAD_MODULE_HTTP -DHTTP_SAFE -DHTTP_DUMP_TIMES -DLOAD_MODULE_TRAFFIC -DLOAD_MODULE_SLICE -DLOAD_MODULE_RTTGRAPH -DLOAD_MODULE_COLLIE -DLOAD_MODULE_REALTIME -DGROK_SNOOP -DGROK_TCPDUMP -DGROK_NETM -DGROK_ETHERPEEK -DGROK_NS -DGROK_NETSCOUT -DGROK_ERF -DHAVE_LIBM=1 -DHAVE_SYS_TYPES_H=1 -DHAVE_SYS_STAT_H=1 -DHAVE_STDLIB_H=1 -DHAVE_STRING_H=1 -DHAVE_MEMORY_H=1 -DHAVE_STRINGS_H=1 -DHAVE_INTTYPES_H=1 -DHAVE_STDINT_H=1 -DHAVE_UNISTD_H=1 -DSIZEOF_UNSIGNED_LONG_LONG_INT=8 -DSIZEOF_UNSIGNED_LONG_INT=8 -DSIZEOF_UNSIGNED_INT=4 -DSIZEOF_UNSIGNED_SHORT=2 -DHAVE_MKSTEMP=1 -DHAVE_VALLOC=1 -DHAVE_MEMALIGN=1 -DHAVE_INET_PTON=1   -I.  -I/usr/local/include -I. -I../pcap -I/usr/include/pcap -g -Wall -O2 -Wdate-time -D_FORTIFY_SOURCE=2  -c -o ipv6.o ipv6.c
ipv6.c: In function ‘gethdrlength’:
ipv6.c:335:18: warning: variable ‘pipv6’ set but not used [-Wunused-but-set-variable]
  335 |     struct ipv6 *pipv6;
      |                  ^~~~~
cp flex_bison/filt_parser.c .
cp flex_bison/filt_parser.h .
cp flex_bison/filt_scanner.c .
gcc -O2 -g -O2 -Werror=implicit-function-declaration -ffile-prefix-map=/build/reproducible-path/tcptrace-6.6.7=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -fcf-protection -DGUNZIP="\"gunzip\"" -DBUNZIP2="\"bunzip2\"" -DLOAD_MODULE_HTTP -DHTTP_SAFE -DHTTP_DUMP_TIMES -DLOAD_MODULE_TRAFFIC -DLOAD_MODULE_SLICE -DLOAD_MODULE_RTTGRAPH -DLOAD_MODULE_COLLIE -DLOAD_MODULE_REALTIME -DGROK_SNOOP -DGROK_TCPDUMP -DGROK_NETM -DGROK_ETHERPEEK -DGROK_NS -DGROK_NETSCOUT -DGROK_ERF -DHAVE_LIBM=1 -DHAVE_SYS_TYPES_H=1 -DHAVE_SYS_STAT_H=1 -DHAVE_STDLIB_H=1 -DHAVE_STRING_H=1 -DHAVE_MEMORY_H=1 -DHAVE_STRINGS_H=1 -DHAVE_INTTYPES_H=1 -DHAVE_STDINT_H=1 -DHAVE_UNISTD_H=1 -DSIZEOF_UNSIGNED_LONG_LONG_INT=8 -DSIZEOF_UNSIGNED_LONG_INT=8 -DSIZEOF_UNSIGNED_INT=4 -DSIZEOF_UNSIGNED_SHORT=2 -DHAVE_MKSTEMP=1 -DHAVE_VALLOC=1 -DHAVE_MEMALIGN=1 -DHAVE_INET_PTON=1   -I.  -I/usr/local/include -I. -I../pcap -I/usr/include/pcap -g -Wall -O2 -Wdate-time -D_FORTIFY_SOURCE=2  -c -o filt_scanner.o filt_scanner.c
In file included from ./filt_scanner.l:59:
filter.h:121:17: error: two or more data types in declaration specifiers
  121 |     Bool        bool;
      |                 ^~~~
filter.h:121:21: warning: declaration does not declare anything
  121 |     Bool        bool;
      |                     ^
In file included from ./filt_scanner.l:63:
filt_parser.h:6:10: error: two or more data types in declaration specifiers
    6 |     Bool bool;
      |          ^~~~
filt_parser.h:6:14: warning: declaration does not declare anything
    6 |     Bool bool;
      |              ^
./filt_scanner.l:539:12: warning: ‘input’ defined but not used [-Wunused-function]
make[1]: *** [<builtin>: filt_scanner.o] Error 1
make[1]: Leaving directory '/build/reproducible-path/tcptrace-6.6.7'
dh_auto_build: error: make -j1 returned exit code 2
make: *** [debian/rules:3: binary] Error 255
dpkg-buildpackage: error: debian/rules binary subprocess returned exit status 2