#1098144 xinetd: ftbfs with GCC-15

#1098144#5
Date:
2025-02-17 18:01:52 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/xinetd_2.3.15.4-4_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

[...]
src/builtins.c:75:39: error: initialization of ‘void (*)(void)’ from incompatible pointer type ‘void (*)(const struct server *)’ [-Wincompatible-pointer-types]
   75 |       { "daytime",   SOCK_STREAM,   { stream_daytime,  NO_FORK } },
      |                                       ^~~~~~~~~~~~~~
src/builtins.c:75:39: note: (near initialization for ‘builtin_services[6].bs_handle.b_handler’)
src/builtins.c:48:13: note: ‘stream_daytime’ declared here
   48 | static void stream_daytime(const struct server *) ;
      |             ^~~~~~~~~~~~~~
src/builtins.c:76:39: error: initialization of ‘void (*)(void)’ from incompatible pointer type ‘void (*)(const struct server *)’ [-Wincompatible-pointer-types]
   76 |       { "daytime",   SOCK_DGRAM,    { dgram_daytime,   NO_FORK } },
      |                                       ^~~~~~~~~~~~~
src/builtins.c:76:39: note: (near initialization for ‘builtin_services[7].bs_handle.b_handler’)
src/builtins.c:49:13: note: ‘dgram_daytime’ declared here
   49 | static void dgram_daytime(const struct server *) ;
      |             ^~~~~~~~~~~~~
src/builtins.c:77:39: error: initialization of ‘void (*)(void)’ from incompatible pointer type ‘void (*)(const struct server *)’ [-Wincompatible-pointer-types]
   77 |       { "chargen",   SOCK_STREAM,   { stream_chargen,  FORK    } },
      |                                       ^~~~~~~~~~~~~~
src/builtins.c:77:39: note: (near initialization for ‘builtin_services[8].bs_handle.b_handler’)
src/builtins.c:50:13: note: ‘stream_chargen’ declared here
   50 | static void stream_chargen(const struct server *) ;
      |             ^~~~~~~~~~~~~~
src/builtins.c:78:39: error: initialization of ‘void (*)(void)’ from incompatible pointer type ‘void (*)(const struct server *)’ [-Wincompatible-pointer-types]
   78 |       { "chargen",   SOCK_DGRAM,    { dgram_chargen,   NO_FORK } },
      |                                       ^~~~~~~~~~~~~
src/builtins.c:78:39: note: (near initialization for ‘builtin_services[9].bs_handle.b_handler’)
src/builtins.c:51:13: note: ‘dgram_chargen’ declared here
   51 | static void dgram_chargen(const struct server *) ;
      |             ^~~~~~~~~~~~~
src/builtins.c:79:39: error: initialization of ‘void (*)(void)’ from incompatible pointer type ‘void (*)(const struct server *)’ [-Wincompatible-pointer-types]
   79 |       { "sensor",    SOCK_STREAM,   { stream_discard,  NO_FORK } },
      |                                       ^~~~~~~~~~~~~~
src/builtins.c:79:39: note: (near initialization for ‘builtin_services[10].bs_handle.b_handler’)
src/builtins.c:44:13: note: ‘stream_discard’ declared here
   44 | static void stream_discard(const struct server *) ;
      |             ^~~~~~~~~~~~~~
src/builtins.c:80:39: error: initialization of ‘void (*)(void)’ from incompatible pointer type ‘void (*)(const struct server *)’ [-Wincompatible-pointer-types]
   80 |       { "sensor",    SOCK_DGRAM,    { dgram_discard,   NO_FORK } },
      |                                       ^~~~~~~~~~~~~
src/builtins.c:80:39: note: (near initialization for ‘builtin_services[11].bs_handle.b_handler’)
src/builtins.c:45:13: note: ‘dgram_discard’ declared here
   45 | static void dgram_discard(const struct server *) ;
      |             ^~~~~~~~~~~~~
src/builtins.c:81:39: error: initialization of ‘void (*)(void)’ from incompatible pointer type ‘void (*)(const struct server *)’ [-Wincompatible-pointer-types]
   81 |       { "tcpmux",    SOCK_STREAM,   { tcpmux_handler,  FORK    } },
      |                                       ^~~~~~~~~~~~~~
src/builtins.c:81:39: note: (near initialization for ‘builtin_services[12].bs_handle.b_handler’)
src/builtins.c:52:13: note: ‘tcpmux_handler’ declared here
   52 | static void tcpmux_handler(const struct server *) ;
      |             ^~~~~~~~~~~~~~
In file included from src/builtins.c:24:
src/builtins.c: In function ‘tcpmux_handler’:
src/builtins.h:33:41: error: too many arguments to function ‘(void (*)(void))scp->sc_builtin->b_handler’; expected 0, have 1
   33 | #define BUILTIN_INVOKE( bp, serp )     (*(bp)->b_handler)( serp )
      |                                        ~^~~~~~~~~~~~~~~~~
src/sconf.h:292:35: note: in expansion of macro ‘BUILTIN_INVOKE’
  292 | #define SC_INTERNAL( scp, serp )  BUILTIN_INVOKE( (scp)->sc_builtin, serp )
      |                                   ^~~~~~~~~~~~~~
src/builtins.c:607:7: note: in expansion of macro ‘SC_INTERNAL’
  607 |       SC_INTERNAL(scp, nserp);
      |       ^~~~~~~~~~~
make[2]: *** [Makefile:1175: src/xinetd-builtins.o] Error 1
libtool: compile:  gcc -DHAVE_CONFIG_H -I. -I./src -I./src/misc -I./src/portable -I./src/pset -I./src/sio -I./src/str -I./src/xlog -Wdate-time -D_FORTIFY_SOURCE=2 -g -O2 -Werror=implicit-function-declaration -ffile-prefix-map=/build/reproducible-path/xinetd-2.3.15.4=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -fcf-protection -Wall -Wextra -fno-strict-overflow -D_FORTIFY_SOURCE=2 -fstack-protector-all -Wstack-protector --param ssp-buffer-size=1 -g -O2 -Werror=implicit-function-declaration -ffile-prefix-map=/build/reproducible-path/xinetd-2.3.15.4=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -fcf-protection -Wall -Wextra -c src/sio/sio.c -fPIE -o src/sio/sio.o >/dev/null 2>&1
libtool: compile:  gcc -DHAVE_CONFIG_H -I. -I./src -I./src/misc -I./src/portable -I./src/pset -I./src/sio -I./src/str -I./src/xlog -Wdate-time -D_FORTIFY_SOURCE=2 -g -O2 -Werror=implicit-function-declaration -ffile-prefix-map=/build/reproducible-path/xinetd-2.3.15.4=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -fcf-protection -Wall -Wextra -fno-strict-overflow -D_FORTIFY_SOURCE=2 -fstack-protector-all -Wstack-protector --param ssp-buffer-size=1 -g -O2 -Werror=implicit-function-declaration -ffile-prefix-map=/build/reproducible-path/xinetd-2.3.15.4=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -fcf-protection -Wall -Wextra -c src/sio/siosup.c -fPIE -o src/sio/siosup.o >/dev/null 2>&1
libtool: compile:  gcc -DHAVE_CONFIG_H -I. -I./src -I./src/misc -I./src/portable -I./src/pset -I./src/sio -I./src/str -I./src/xlog -Wdate-time -D_FORTIFY_SOURCE=2 -g -O2 -Werror=implicit-function-declaration -ffile-prefix-map=/build/reproducible-path/xinetd-2.3.15.4=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -fcf-protection -Wall -Wextra -fno-strict-overflow -D_FORTIFY_SOURCE=2 -fstack-protector-all -Wstack-protector --param ssp-buffer-size=1 -g -O2 -Werror=implicit-function-declaration -ffile-prefix-map=/build/reproducible-path/xinetd-2.3.15.4=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -fcf-protection -Wall -Wextra -c src/sio/sprint.c -fPIE -o src/sio/sprint.o >/dev/null 2>&1
make[2]: Leaving directory '/build/reproducible-path/xinetd-2.3.15.4'
make[1]: *** [Makefile:678: all] Error 2
make[1]: Leaving directory '/build/reproducible-path/xinetd-2.3.15.4'
dh_auto_build: error: make -j8 returned exit code 2
make: *** [debian/rules:10: binary] Error 25
dpkg-buildpackage: error: debian/rules binary subprocess returned exit status 2