Bug#1097888: sjeng: ftbfs with GCC-15
Package: src:sjeng
Version: 11.2-14
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/sjeng_11.2-14_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
[...]
| ^~~~~~~~
seval.c:42:18: warning: ‘rook_o’ defined but not used [-Wunused-const-variable=]
42 | static const int rook_o[4] = {12, -12, 1, -1};
| ^~~~~~
sjeng.h:103:28: warning: useless type name in empty declaration
make[3]: *** [Makefile:490: seval.o] Error 1
ttable.c: In function ‘ProbeTT’:
ttable.c:245:31: warning: unused parameter ‘alpha’ [-Wunused-parameter]
245 | int ProbeTT(long *score, long alpha, long beta, int *best, int *threat, int *donull, int depth)
| ~~~~~^~~~~
ttable.c: In function ‘QProbeTT’:
ttable.c:331:32: warning: unused parameter ‘alpha’ [-Wunused-parameter]
331 | int QProbeTT(long *score, long alpha, long beta, int *best)
| ~~~~~^~~~~
ttable.c:331:44: warning: unused parameter ‘beta’ [-Wunused-parameter]
331 | int QProbeTT(long *score, long alpha, long beta, int *best)
| ~~~~~^~~~
In file included from partner.c:24:
sjeng.h:103:28: error: expected ‘;’, identifier or ‘(’ before ‘bool’
103 | typedef enum {FALSE, TRUE} bool;
| ^~~~
sjeng.h:103:28: warning: useless type name in empty declaration
make[3]: *** [Makefile:490: ttable.o] Error 1
In file included from attacks.c:24:
sjeng.h:103:28: error: expected ‘;’, identifier or ‘(’ before ‘bool’
103 | typedef enum {FALSE, TRUE} bool;
| ^~~~
sjeng.h:103:28: warning: useless type name in empty declaration
In file included from learn.c:24:
sjeng.h:103:28: error: expected ‘;’, identifier or ‘(’ before ‘bool’
103 | typedef enum {FALSE, TRUE} bool;
| ^~~~
sjeng.h:103:28: warning: useless type name in empty declaration
learn.c: In function ‘Learn’:
learn.c:67:3: warning: ignoring return value of ‘fread’ declared with attribute ‘warn_unused_result’ [-Wunused-result]
67 | fread(&number, sizeof(int), 1, *lrnfile);
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
learn.c:68:3: warning: ignoring return value of ‘fread’ declared with attribute ‘warn_unused_result’ [-Wunused-result]
68 | fread(&next, sizeof(int), 1, *lrnfile);
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
learn.c: In function ‘LoadLearn’:
learn.c:128:3: warning: ignoring return value of ‘fread’ declared with attribute ‘warn_unused_result’ [-Wunused-result]
128 | fread(&number, sizeof(int), 1, *lrnfile);
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
learn.c:133:7: warning: ignoring return value of ‘fread’ declared with attribute ‘warn_unused_result’ [-Wunused-result]
133 | fread(&draft, sizeof(LearnType), 1, *lrnfile);
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
make[3]: *** [Makefile:490: learn.o] Error 1
make[3]: *** [Makefile:490: attacks.o] Error 1
In file included from book.c:26:
sjeng.h:103:28: error: expected ‘;’, identifier or ‘(’ before ‘bool’
103 | typedef enum {FALSE, TRUE} bool;
| ^~~~
sjeng.h:103:28: warning: useless type name in empty declaration
make[3]: *** [Makefile:490: partner.o] Error 1
In file included from crazy.c:25:
sjeng.h:103:28: error: expected ‘;’, identifier or ‘(’ before ‘bool’
103 | typedef enum {FALSE, TRUE} bool;
| ^~~~
sjeng.h:103:28: warning: useless type name in empty declaration
make[3]: *** [Makefile:490: book.o] Error 1
make[3]: *** [Makefile:490: crazy.o] Error 1
make[3]: Leaving directory '/build/reproducible-path/sjeng-11.2'
make[2]: *** [Makefile:506: all-recursive] Error 1
make[2]: Leaving directory '/build/reproducible-path/sjeng-11.2'
make[1]: *** [Makefile:350: all] Error 2
make[1]: Leaving directory '/build/reproducible-path/sjeng-11.2'
dh_auto_build: error: make -j8 returned exit code 2
make: *** [debian/rules:27: binary] Error 25
dpkg-buildpackage: error: debian/rules binary subprocess returned exit status 2
Reply to: