#1096679 gbatnav: ftbfs with GCC-15

Package:
src:gbatnav
Source:
src:gbatnav
Submitter:
Matthias Klose
Date:
2025-09-04 22:08:09 UTC
Severity:
normal
Tags:
#1096679#5
Date:
2025-02-17 17:14: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/gbatnav_1.0.4cvs20051004-7_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

[...]
      |                                         ^~~~~~~~~~
play.c:493:41: note: (near initialization for ‘tokens[5].func’)
play.c:315:6: note: ‘token_exit’ declared here
  315 | void token_exit( int fd )
      |      ^~~~~~~~~~
play.c:494:41: error: initialization of ‘void (*)(void)’ from incompatible pointer type ‘void (*)(int,  char *)’ [-Wincompatible-pointer-types]
  494 |                 { BN_NAME,              token_name },
      |                                         ^~~~~~~~~~
play.c:494:41: note: (near initialization for ‘tokens[6].func’)
play.c:414:13: note: ‘token_name’ declared here
  414 | static void token_name( int fd, char *str )
      |             ^~~~~~~~~~
play.c:495:41: error: initialization of ‘void (*)(void)’ from incompatible pointer type ‘void (*)(int,  char *)’ [-Wincompatible-pointer-types]
  495 |                 { BN_FIRE,              token_fire },
      |                                         ^~~~~~~~~~
play.c:495:41: note: (near initialization for ‘tokens[7].func’)
play.c:135:13: note: ‘token_fire’ declared here
  135 | static void token_fire( int fd, char *str )
      |             ^~~~~~~~~~
play.c:496:41: error: initialization of ‘void (*)(void)’ from incompatible pointer type ‘void (*)(int,  char *)’ [-Wincompatible-pointer-types]
  496 |                 { BN_ROBOT,             token_robot },
      |                                         ^~~~~~~~~~~
play.c:496:41: note: (near initialization for ‘tokens[8].func’)
play.c:71:13: note: ‘token_robot’ declared here
   71 | static void token_robot( int fd, char *str )
      |             ^~~~~~~~~~~
play.c:499:41: error: initialization of ‘void (*)(void)’ from incompatible pointer type ‘void (*)(int,  char *)’ [-Wincompatible-pointer-types]
  499 |                 { BN_CLI_VER,           token_client_version },
      |                                         ^~~~~~~~~~~~~~~~~~~~
play.c:499:41: note: (near initialization for ‘tokens[11].func’)
play.c:431:13: note: ‘token_client_version’ declared here
  431 | static void token_client_version( int fd, char *str )
      |             ^~~~~~~~~~~~~~~~~~~~
play.c:500:41: error: initialization of ‘void (*)(void)’ from incompatible pointer type ‘void (*)(int)’ [-Wincompatible-pointer-types]
  500 |                 { BN_SER_VER,           token_server_version },
      |                                         ^~~~~~~~~~~~~~~~~~~~
play.c:500:41: note: (near initialization for ‘tokens[12].func’)
play.c:442:13: note: ‘token_server_version’ declared here
  442 | static void token_server_version( int fd )
      |             ^~~~~~~~~~~~~~~~~~~~
play.c:501:41: error: initialization of ‘void (*)(void)’ from incompatible pointer type ‘void (*)(int)’ [-Wincompatible-pointer-types]
  501 |                 { BN_NUMJUG,            token_numjug },
      |                                         ^~~~~~~~~~~~
play.c:501:41: note: (near initialization for ‘tokens[13].func’)
play.c:55:13: note: ‘token_numjug’ declared here
   55 | static void token_numjug( int fd )
      |             ^~~~~~~~~~~~
play.c:502:41: error: initialization of ‘void (*)(void)’ from incompatible pointer type ‘void (*)(int)’ [-Wincompatible-pointer-types]
  502 |                 { BN_HELP,              token_help },
      |                                         ^~~~~~~~~~
play.c:502:41: note: (near initialization for ‘tokens[14].func’)
play.c:453:13: note: ‘token_help’ declared here
  453 | static void token_help ( int fd )
      |             ^~~~~~~~~~
play.c:516:43: error: too many arguments to function ‘tokens[i].func’; expected 0, have 2
  516 |                                 (tokens[i].func)(fd,p->value);
      |                                 ~~~~~~~~~~^~~~~~ ~~
play.c:485:24: note: declared here
  485 |                 void (*func) ();
      |                        ^~~~
make[3]: *** [Makefile:535: play.o] Error 1
make[3]: *** Waiting for unfinished jobs....
make[3]: Leaving directory '/build/reproducible-path/gbatnav-1.0.4cvs20051004/gbnserver'
make[2]: *** [Makefile:471: all-recursive] Error 1
make[2]: Leaving directory '/build/reproducible-path/gbatnav-1.0.4cvs20051004'
make[1]: *** [Makefile:399: all] Error 2
make[1]: Leaving directory '/build/reproducible-path/gbatnav-1.0.4cvs20051004'
dh_auto_build: error: make -j8 returned exit code 2
make: *** [debian/rules:9: binary] Error 25
dpkg-buildpackage: error: debian/rules binary subprocess returned exit status 2