#1096799 haxe: ftbfs with GCC-15

Package:
src:haxe
Source:
src:haxe
Submitter:
Matthias Klose
Date:
2025-09-06 06:13:02 UTC
Severity:
normal
Tags:
#1096799#5
Date:
2025-02-17 17:18:49 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/haxe_4.3.6-3_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

[...]
_build/default/src-prebuild/prebuild.exe version "0" "" "" > src/compiler/version.ml
dune build --workspace dune-workspace.dev src/haxe.exe
Warning: Cache directories could not be created: Permission denied; disabling
cache
Hint: Make sure the directory /sbuild-nonexistent/.cache/dune/db/temp can be
created
process_stubs.c: In function ‘process_run’:
process_stubs.c:369:25: warning: assignment discards ‘const’ qualifier from pointer target type [-Wdiscarded-qualifiers]
  369 |                 argv[2] = val_string(cmd);
      |                         ^
process_stubs.c:373:25: warning: assignment discards ‘const’ qualifier from pointer target type [-Wdiscarded-qualifiers]
  373 |                 argv[0] = val_string(cmd);
      |                         ^
process_stubs.c:376:35: warning: assignment discards ‘const’ qualifier from pointer target type [-Wdiscarded-qualifiers]
  376 |                         argv[i+1] = val_string(v);
      |                                   ^
process_stubs.c: In function ‘process_stdout_read’:
process_stubs.c:446:47: warning: passing argument 2 of ‘read’ discards ‘const’ qualifier from pointer target type [-Wdiscarded-qualifiers]
  446 |         nbytes = read(p->oread,val_string(str)+val_int(pos),val_int(len));
In file included from process_stubs.c:37:
/usr/include/unistd.h:371:38: note: expected ‘void *’ but argument is of type ‘const char *’
  371 | extern ssize_t read (int __fd, void *__buf, size_t __nbytes) __wur
      |                                ~~~~~~^~~~~
process_stubs.c: In function ‘process_stderr_read’:
process_stubs.c:477:47: warning: passing argument 2 of ‘read’ discards ‘const’ qualifier from pointer target type [-Wdiscarded-qualifiers]
  477 |         nbytes = read(p->eread,val_string(str)+val_int(pos),val_int(len));
/usr/include/unistd.h:371:38: note: expected ‘void *’ but argument is of type ‘const char *’
  371 | extern ssize_t read (int __fd, void *__buf, size_t __nbytes) __wur
      |                                ~~~~~~^~~~~
File "libs/neko/ncompile.ml", line 676, characters 11-18:
676 | 			let _ = jmp ctx in
      			        ^^^^^^^
Warning 5 [ignored-partial-application]: this function application is partial,
maybe some arguments are missing.
pcre2_stubs.c: In function ‘pcre2_callout_handler’:
pcre2_stubs.c:139:29: warning: initialization discards ‘volatile’ qualifier from pointer target type [-Wdiscarded-qualifiers]
  139 |     caml_int_ptr ovec_dst = &Field(Field(v_substrings, 1), 0) + subgroups2_1;
      |                             ^
File "libs/neko/ncompile.ml", line 676, characters 11-18:
676 | 			let _ = jmp ctx in
      			        ^^^^^^^
Warning 5 [ignored-partial-application]: this function application is partial,
maybe some arguments are missing.
cp -f _build/default/src/haxe.exe ./"haxe"
cd /build/reproducible-path/haxe-4.3.6/extra/haxelib_src && \
HAXE_STD_PATH=/build/reproducible-path/haxe-4.3.6/std /build/reproducible-path/haxe-4.3.6/haxe client.hxml && \
nekotools boot -c run.n
src/haxelib/client/Vcs.hx:55: characters 1-7 : Warning : (WDeprecatedEnumAbstract) `@:enum abstract` is deprecated in favor of `enum abstract`
src/haxelib/Data.hx:61: characters 1-7 : Warning : (WDeprecatedEnumAbstract) `@:enum abstract` is deprecated in favor of `enum abstract`
src/haxelib/Data.hx:144: characters 1-7 : Warning : (WDeprecatedEnumAbstract) `@:enum abstract` is deprecated in favor of `enum abstract`
src/haxelib/Data.hx:205: characters 1-7 : Warning : (WDeprecatedEnumAbstract) `@:enum abstract` is deprecated in favor of `enum abstract`
src/haxelib/client/Vcs.hx:220: characters 2-9 : Warning : (WDeprecated) `@:final` is deprecated in favor of `final`
src/haxelib/Data.hx:83: characters 40-60 : Warning : (WDeprecated) Std.is is deprecated. Use Std.isOfType instead.
src/haxelib/Data.hx:381: characters 25-32 : Warning : (WDeprecated) Std.is is deprecated. Use Std.isOfType instead.
src/haxelib/Data.hx:390: characters 25-30 : Warning : (WDeprecated) Std.is is deprecated. Use Std.isOfType instead.
src/haxelib/Data.hx:420: characters 23-26 : Warning : (WDeprecated) Std.is is deprecated. Use Std.isOfType instead.
src/haxelib/Data.hx:237: characters 33-44 : Warning : (WDeprecated) Std.is is deprecated. Use Std.isOfType instead.
src/haxelib/SemVer.hx:160: characters 10-27 : Warning : (WDeprecated) Std.is is deprecated. Use Std.isOfType instead.
cc -Wdate-time -D_FORTIFY_SOURCE=2 -g -O2 -Werror=implicit-function-declaration -ffile-prefix-map=/build/reproducible-path/haxe-4.3.6=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -fcf-protection /build/reproducible-path/haxe-4.3.6/extra/haxelib_src/run.c -Wl,-z,relro -lneko  -o haxelib
In file included from /usr/include/x86_64-linux-gnu/neko_vm.h:24,
                 from /build/reproducible-path/haxe-4.3.6/extra/haxelib_src/run.c:4:
/usr/include/x86_64-linux-gnu/neko.h:302:29: error: ‘bool’ cannot be defined via ‘typedef’
  302 |                 typedef int bool;
      |                             ^~~~
/usr/include/x86_64-linux-gnu/neko.h:302:29: note: ‘bool’ is a keyword with ‘-std=c23’ onwards
make[1]: *** [Makefile:115: haxelib_unix] Error 1
make[1]: Leaving directory '/build/reproducible-path/haxe-4.3.6'
dh_auto_build: error: make -j1 returned exit code 2
make: *** [debian/rules:8: binary] Error 25
dpkg-buildpackage: error: debian/rules binary subprocess returned exit status 2

#1096799#14
Date:
2025-09-06 06:10:33 UTC
From:
To: