librelp icon indicating copy to clipboard operation
librelp copied to clipboard

librelp: ftbfs with GCC-15

Open mbiebl opened this issue 9 months ago • 0 comments

Forwarded from https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1097259

Package: src:librelp
Version: 1.11.0-2
Severity: important
Tags: sid forky
User: [email protected]
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/librelp_1.11.0-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

[...]
   70 | do_signal(const int sig)
      | ^~~~~~~~~
/bin/bash ../libtool  --tag=CC   --mode=link gcc  -g -O2 -Werror=implicit-function-declaration -ffile-prefix-map=/build/reproducible-path/librelp-1.11.0=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -fcf-protection    -Wl,-z,relro -Wl,-z,now -o have_tlslib have_tlslib.o  -lssl -lcrypto  -lssl -lcrypto 
make[3]: *** [Makefile:747: send-send.o] Error 1
make[3]: *** Waiting for unfinished jobs....
/bin/bash ../libtool  --tag=CC   --mode=link gcc  -g -O2 -Werror=implicit-function-declaration -ffile-prefix-map=/build/reproducible-path/librelp-1.11.0=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -fcf-protection    -Wl,-z,relro -Wl,-z,now -o msleep msleep.o  -lssl -lcrypto  -lssl -lcrypto 
receive.c: In function ‘hdlr_enable’:
receive.c:76:27: error: assignment to ‘__sighandler_t’ {aka ‘void (*)(int)’} from incompatible pointer type ‘void (*)(void)’ [-Wincompatible-pointer-types]
   76 |         sigAct.sa_handler = hdlr;
      |                           ^
In file included from receive.c:35:
/usr/include/signal.h:72:16: note: ‘__sighandler_t’ declared here
   72 | typedef void (*__sighandler_t) (int);
      |                ^~~~~~~~~~~~~~
receive.c: In function ‘main’:
receive.c:396:38: error: passing argument 2 of ‘hdlr_enable’ from incompatible pointer type [-Wincompatible-pointer-types]
  396 |                 hdlr_enable(SIGPIPE, do_signal);
      |                                      ^~~~~~~~~
      |                                      |
      |                                      __attribute__((noreturn)) void (*)(const int)
receive.c:71:29: note: expected ‘void (*)(void)’ but argument is of type ‘__attribute__((noreturn)) void (*)(const int)’
   71 | hdlr_enable(int sig, void (*hdlr)())
      |                      ~~~~~~~^~~~~~~
receive.c:101:1: note: ‘do_signal’ declared here
  101 | do_signal(const int sig)
      | ^~~~~~~~~
receive.c:400:30: error: passing argument 2 of ‘hdlr_enable’ from incompatible pointer type [-Wincompatible-pointer-types]
  400 |         hdlr_enable(SIGUSR1, do_exit);
      |                              ^~~~~~~
      |                              |
      |                              void (*)(const int)
receive.c:71:29: note: expected ‘void (*)(void)’ but argument is of type ‘void (*)(const int)’
   71 | hdlr_enable(int sig, void (*hdlr)())
      |                      ~~~~~~~^~~~~~~
receive.c:113:1: note: ‘do_exit’ declared here
  113 | do_exit(LIBRELP_ATTR_UNUSED const int sig)
      | ^~~~~~~
receive.c:401:30: error: passing argument 2 of ‘hdlr_enable’ from incompatible pointer type [-Wincompatible-pointer-types]
  401 |         hdlr_enable(SIGTERM, terminate);
      |                              ^~~~~~~~~
      |                              |
      |                              void (*)(const int)
receive.c:71:29: note: expected ‘void (*)(void)’ but argument is of type ‘void (*)(const int)’
   71 | hdlr_enable(int sig, void (*hdlr)())
      |                      ~~~~~~~^~~~~~~
receive.c:81:1: note: ‘terminate’ declared here
   81 | terminate(LIBRELP_ATTR_UNUSED const int sig)
      | ^~~~~~~~~
receive.c:402:30: error: passing argument 2 of ‘hdlr_enable’ from incompatible pointer type [-Wincompatible-pointer-types]
  402 |         hdlr_enable(SIGALRM, watchdog_expired);
      |                              ^~~~~~~~~~~~~~~~
      |                              |
      |                              __attribute__((noreturn)) void (*)(const int)
receive.c:71:29: note: expected ‘void (*)(void)’ but argument is of type ‘__attribute__((noreturn)) void (*)(const int)’
   71 | hdlr_enable(int sig, void (*hdlr)())
      |                      ~~~~~~~^~~~~~~
receive.c:91:1: note: ‘watchdog_expired’ declared here
   91 | watchdog_expired(LIBRELP_ATTR_UNUSED const int sig)
      | ^~~~~~~~~~~~~~~~
make[3]: *** [Makefile:733: receive-receive.o] Error 1
libtool: link: gcc -g -O2 -Werror=implicit-function-declaration -ffile-prefix-map=/build/reproducible-path/librelp-1.11.0=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -fcf-protection -Wl,-z -Wl,relro -Wl,-z -Wl,now -o have_tlslib have_tlslib.o  -lssl -lcrypto
libtool: link: gcc -g -O2 -Werror=implicit-function-declaration -ffile-prefix-map=/build/reproducible-path/librelp-1.11.0=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -fcf-protection -Wl,-z -Wl,relro -Wl,-z -Wl,now -o msleep msleep.o  -lssl -lcrypto
make[3]: Leaving directory '/build/reproducible-path/librelp-1.11.0/tests'
make[2]: *** [Makefile:1028: check-am] Error 2
make[2]: Leaving directory '/build/reproducible-path/librelp-1.11.0/tests'
make[1]: *** [Makefile:480: check-recursive] Error 1
make[1]: Leaving directory '/build/reproducible-path/librelp-1.11.0'
dh_auto_test: error: make -j8 check "TESTSUITEFLAGS=-j8 --verbose" VERBOSE=1 returned exit code 2
make: *** [debian/rules:6: binary] Error 25
dpkg-buildpackage: error: debian/rules binary subprocess returned exit status 2

mbiebl avatar Feb 17 '25 18:02 mbiebl