Bug#1096604: f2j: ftbfs with GCC-15

Matthias Klose doko at debian.org
Mon Feb 17 17:12:29 GMT 2025


Package: src:f2j
Version: 0.8.1+dfsg-5
Severity: important
Tags: sid forky
User: debian-gcc at 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/f2j_0.8.1+dfsg-5_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

[...]
f2jparse.y: In function ‘clone_ident’:
f2jparse.y:4818:70: warning: iteration 7 invokes undefined behavior [-Waggressive-loop-optimizations]
 4818 |     new_node->astnode.ident.startDim[i] = ast->astnode.ident.startDim[i];
      |                                           ~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~
f2jparse.y:4817:13: note: within this loop
 4817 |   for(i=0; i<=MAX_ARRAY_DIM; i++) {
gcc -Wall -DDEBUG_MEM -g -O2 -Werror=implicit-function-declaration -ffile-prefix-map=/build/reproducible-path/f2j-0.8.1+dfsg=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -fcf-protection -I /build/reproducible-path/f2j-0.8.1+dfsg/libbytecode -c f2jlex.c
gcc -Wall -DDEBUG_MEM -g -O2 -Werror=implicit-function-declaration -ffile-prefix-map=/build/reproducible-path/f2j-0.8.1+dfsg=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -fcf-protection -I /build/reproducible-path/f2j-0.8.1+dfsg/libbytecode -c f2jmain.c
gcc -Wall -DDEBUG_MEM -g -O2 -Werror=implicit-function-declaration -ffile-prefix-map=/build/reproducible-path/f2j-0.8.1+dfsg=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -fcf-protection -I /build/reproducible-path/f2j-0.8.1+dfsg/libbytecode -c codegen.c
gcc -Wall -DDEBUG_MEM -g -O2 -Werror=implicit-function-declaration -ffile-prefix-map=/build/reproducible-path/f2j-0.8.1+dfsg=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -fcf-protection -I /build/reproducible-path/f2j-0.8.1+dfsg/libbytecode -c vcg_emitter.c
gcc -Wall -DDEBUG_MEM -g -O2 -Werror=implicit-function-declaration -ffile-prefix-map=/build/reproducible-path/f2j-0.8.1+dfsg=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -fcf-protection -I /build/reproducible-path/f2j-0.8.1+dfsg/libbytecode -c typecheck.c
gcc -Wall -DDEBUG_MEM -g -O2 -Werror=implicit-function-declaration -ffile-prefix-map=/build/reproducible-path/f2j-0.8.1+dfsg=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -fcf-protection -I /build/reproducible-path/f2j-0.8.1+dfsg/libbytecode -c optimize.c
gcc -Wall -DDEBUG_MEM -g -O2 -Werror=implicit-function-declaration -ffile-prefix-map=/build/reproducible-path/f2j-0.8.1+dfsg=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -fcf-protection -I /build/reproducible-path/f2j-0.8.1+dfsg/libbytecode -c globals.c
optimize.c: In function ‘optimize’:
optimize.c:188:5: warning: case value ‘0’ not in enumerated type ‘enum _nodetype’ [-Wswitch]
  188 |     case 0:
      |     ^~~~
vcg_emitter.c: In function ‘emit_vcg’:
typecheck.c: In function ‘typecheck’:
vcg_emitter.c:234:5: warning: case value ‘0’ not in enumerated type ‘enum _nodetype’ [-Wswitch]
  234 |     case 0:
      |     ^~~~
typecheck.c:102:5: warning: case value ‘0’ not in enumerated type ‘enum _nodetype’ [-Wswitch]
  102 |     case 0:
      |     ^~~~
codegen.c: In function ‘emit’:
codegen.c:112:7: warning: case value ‘0’ not in enumerated type ‘enum _nodetype’ [-Wswitch]
  112 |       case 0:
      |       ^~~~
codegen.c:108:9: warning: variable ‘locals’ set but not used [-Wunused-but-set-variable]
  108 |     int locals;
      |         ^~~~~~
codegen.c: At top level:
codegen.c:765:1: error: conflicting types for ‘free_lists’; have ‘void(JVM_METHOD *)’ {aka ‘void(struct _method_info *)’}
  765 | free_lists(JVM_METHOD *meth)
      | ^~~~~~~~~~
In file included from codegen.c:17:
codegen.h:278:3: note: previous declaration of ‘free_lists’ with type ‘void(void)’
  278 |   free_lists();
      |   ^~~~~~~~~~
codegen.c: In function ‘getNameFromCommonDesc’:
codegen.c:1847:8: warning: comparison between pointer and zero character constant [-Wpointer-compare]
 1847 |   if(p == '\0')
      |        ^~
codegen.c:1847:6: note: did you mean to dereference the pointer?
 1847 |   if(p == '\0')
      |      ^
codegen.c: In function ‘getFieldDescFromCommonDesc’:
codegen.c:1890:8: warning: comparison between pointer and zero character constant [-Wpointer-compare]
 1890 |   if(p == '\0')
      |        ^~
codegen.c:1890:6: note: did you mean to dereference the pointer?
 1890 |   if(p == '\0')
      |      ^
codegen.c: In function ‘data_string_emit’:
codegen.c:3306:16: warning: variable ‘count’ set but not used [-Wunused-but-set-variable]
 3306 |   unsigned int count, size = 0;
      |                ^~~~~
codegen.c: In function ‘LHS_bytecode_emit’:
codegen.c:11009:12: warning: cast from pointer to integer of different size [-Wpointer-to-int-cast]
11009 |            (BOOL)isArg, class, name, desc, typenode->variable->astnode.ident.localvnum, FALSE);
      |            ^
make[2]: *** [Makefile:16: codegen.o] Error 1
make[2]: *** Waiting for unfinished jobs....
make[2]: Leaving directory '/build/reproducible-path/f2j-0.8.1+dfsg/src'
make[1]: *** [Makefile:24: f2java] Error 2
make[1]: Leaving directory '/build/reproducible-path/f2j-0.8.1+dfsg'
dh_auto_build: error: make -j8 returned exit code 2
make: *** [debian/rules:12: binary] Error 25
dpkg-buildpackage: error: debian/rules binary subprocess returned exit status 2



More information about the pkg-java-maintainers mailing list