#1098147 xjdic: ftbfs with GCC-15

Package:
src:xjdic
Source:
src:xjdic
Submitter:
Matthias Klose
Date:
2025-09-04 22:11:41 UTC
Severity:
normal
Tags:
#1098147#5
Date:
2025-02-17 18:01:56 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/xjdic_24-12_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

[...]
dh_testroot
rm -f build-stamp configure-stamp
# Add here commands to clean up after the build process.
/usr/bin/make realclean
make[1]: Entering directory '/build/reproducible-path/xjdic-24'
rm -f *.o
rm -f xjdic_sa xjdic_cl xjdserver xjdxgen exjdxgen xjdrad
make[1]: Leaving directory '/build/reproducible-path/xjdic-24'
rm -f xjdic24.txt
dh_clean
dh_clean: warning: Use of debian/compat is deprecated and will be removed in debhelper (>= 14~).
 debian/rules binary
dh_testdir
# Add here commands to configure the package.
touch configure-stamp
dh_testdir
# Add here commands to compile the package.
/usr/bin/make CC="x86_64-linux-gnu-gcc -Wdate-time -D_FORTIFY_SOURCE=2 -g -O2 -Werror=implicit-function-declaration -ffile-prefix-map=/build/reproducible-path/xjdic-24=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -fcf-protection -fcommon -O3 -Wl,-z,relro"
make[1]: Entering directory '/build/reproducible-path/xjdic-24'
x86_64-linux-gnu-gcc -Wdate-time -D_FORTIFY_SOURCE=2 -g -O2 -Werror=implicit-function-declaration -ffile-prefix-map=/build/reproducible-path/xjdic-24=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -fcf-protection -fcommon -O3 -Wl,-z,relro -c -DXJDFRONTEND -DXJDDIC -DMMAP xjdsa.c
x86_64-linux-gnu-gcc -Wdate-time -D_FORTIFY_SOURCE=2 -g -O2 -Werror=implicit-function-declaration -ffile-prefix-map=/build/reproducible-path/xjdic-24=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -fcf-protection -fcommon -O3 -Wl,-z,relro -c -DXJDFRONTEND -DXJDDIC -DMMAP xjdcomm.c -o xjdcomm_sa.o
xjdcomm.c: In function ‘xfopen’:
xjdcomm.c:110:20: error: conflicting types for ‘fopen’; have ‘FILE *(void)’
  110 |         FILE *fx, *fopen();
      |                    ^~~~~
In file included from xjdcomm.c:21:
/usr/include/stdio.h:264:14: note: previous declaration of ‘fopen’ with type ‘FILE *(const char * restrict,  const char * restrict)’
  264 | extern FILE *fopen (const char *__restrict __filename,
      |              ^~~~~
xjdcomm.c:125:14: error: too many arguments to function ‘fopen’; expected 0, have 2
  125 |         fx = fopen(fnbuff,file_mode);
      |              ^~~~~ ~~~~~~
xjdcomm.c:110:20: note: declared here
  110 |         FILE *fx, *fopen();
      |                    ^~~~~
xjdcomm.c:138:14: error: too many arguments to function ‘fopen’; expected 0, have 2
  138 |         fx = fopen(file_name,file_mode);
      |              ^~~~~ ~~~~~~~~~
xjdcomm.c:110:20: note: declared here
  110 |         FILE *fx, *fopen();
      |                    ^~~~~
xjdcomm.c: In function ‘xjdicrc’:
xjdcomm.c:195:30: error: too many arguments to function ‘fopen’; expected 0, have 2
  195 |                         fm = fopen(cl_rcfile,"r");
      |                              ^~~~~ ~~~~~~~~~
xjdcomm.c:169:19: note: declared here
  169 |         FILE *fm,*fopen();
      |                   ^~~~~
xjdcomm.c:214:22: error: too many arguments to function ‘fopen’; expected 0, have 2
  214 |                 fm = fopen(xjdicdir,"r");
      |                      ^~~~~ ~~~~~~~~
xjdcomm.c:169:19: note: declared here
  169 |         FILE *fm,*fopen();
      |                   ^~~~~
xjdcomm.c:217:22: error: too many arguments to function ‘fopen’; expected 0, have 2
  217 |                 fm = fopen(xjdicdir,"r");
      |                      ^~~~~ ~~~~~~~~
xjdcomm.c:169:19: note: declared here
  169 |         FILE *fm,*fopen();
      |                   ^~~~~
xjdcomm.c:224:30: error: too many arguments to function ‘fopen’; expected 0, have 2
  224 |                         fm = fopen(xjdicdir,"r");
      |                              ^~~~~ ~~~~~~~~
xjdcomm.c:169:19: note: declared here
  169 |         FILE *fm,*fopen();
      |                   ^~~~~
make[1]: *** [Makefile:90: xjdcomm_sa.o] Error 1
make[1]: Leaving directory '/build/reproducible-path/xjdic-24'
make: *** [debian/rules:44: build-stamp] Error 2
dpkg-buildpackage: error: debian/rules binary subprocess returned exit status 2