Subject: neko: ftbfs with GCC-15

From: Matthias Klose <[email-masked]>
Date: Mon, 17 Feb 2025 17:39:14 +0000

Package: src:neko
Version: 2.4.0-2
Severity: important
Tags: sid forky
User: [email-masked]
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/neko_2.4.0-2_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

[...]
This warning is for project developers.  Use -Wno-dev to suppress it.

-- Found APACHE: /usr/include/apache2
-- Found APR: /usr/lib/x86_64-linux-gnu/libapr-1.so
-- Found APRUTIL: /usr/lib/x86_64-linux-gnu/libaprutil-1.so
-- Configuring done (1.5s)
-- Generating done (0.1s)
CMake Warning:
  Manually-specified variables were not used by the project:

    CMAKE_EXPORT_NO_PACKAGE_REGISTRY
    CMAKE_FIND_PACKAGE_NO_PACKAGE_REGISTRY
    FETCHCONTENT_FULLY_DISCONNECTED

-- Build files have been written to: /build/reproducible-path/neko-2.4.0/obj-x86_64-linux-gnu
echo "LoadModule neko_module /usr/lib/x86_64-linux-gnu/neko/mod_neko2.ndll" > debian/neko.load
make[1]: Leaving directory '/build/reproducible-path/neko-2.4.0'
   dh_auto_build -O--no-parallel
	cd obj-x86_64-linux-gnu && make -j1 "INSTALL=install --strip-program=true" VERBOSE=1
make[1]: Entering directory '/build/reproducible-path/neko-2.4.0/obj-x86_64-linux-gnu'
/usr/bin/cmake -S/build/reproducible-path/neko-2.4.0 -B/build/reproducible-path/neko-2.4.0/obj-x86_64-linux-gnu --check-build-system CMakeFiles/Makefile.cmake 0
/usr/bin/cmake -E cmake_progress_start /build/reproducible-path/neko-2.4.0/obj-x86_64-linux-gnu/CMakeFiles /build/reproducible-path/neko-2.4.0/obj-x86_64-linux-gnu//CMakeFiles/progress.marks
make  -f CMakeFiles/Makefile2 all
make[2]: Entering directory '/build/reproducible-path/neko-2.4.0/obj-x86_64-linux-gnu'
make  -f CMakeFiles/libneko.dir/build.make CMakeFiles/libneko.dir/depend
make[3]: Entering directory '/build/reproducible-path/neko-2.4.0/obj-x86_64-linux-gnu'
cd /build/reproducible-path/neko-2.4.0/obj-x86_64-linux-gnu && /usr/bin/cmake -E cmake_depends "Unix Makefiles" /build/reproducible-path/neko-2.4.0 /build/reproducible-path/neko-2.4.0 /build/reproducible-path/neko-2.4.0/obj-x86_64-linux-gnu /build/reproducible-path/neko-2.4.0/obj-x86_64-linux-gnu /build/reproducible-path/neko-2.4.0/obj-x86_64-linux-gnu/CMakeFiles/libneko.dir/DependInfo.cmake "--color="
make[3]: Leaving directory '/build/reproducible-path/neko-2.4.0/obj-x86_64-linux-gnu'
make  -f CMakeFiles/libneko.dir/build.make CMakeFiles/libneko.dir/build
make[3]: Entering directory '/build/reproducible-path/neko-2.4.0/obj-x86_64-linux-gnu'
[  1%] Building C object CMakeFiles/libneko.dir/vm/alloc.c.o
/usr/bin/cc -DABI_ELF -DNEKOVM_DLL_EXPORTS -DNEKO_SOURCES -D_GNU_SOURCE -D_USRDLL -Dlibneko_EXPORTS -I/build/reproducible-path/neko-2.4.0/obj-x86_64-linux-gnu -I/build/reproducible-path/neko-2.4.0/vm -I/build/reproducible-path/neko-2.4.0/libs/common -g -O2 -Werror=implicit-function-declaration -ffile-prefix-map=/build/reproducible-path/neko-2.4.0=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -fcf-protection -fno-strict-aliasing -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -fno-omit-frame-pointer -MD -MT CMakeFiles/libneko.dir/vm/alloc.c.o -MF CMakeFiles/libneko.dir/vm/alloc.c.o.d -o CMakeFiles/libneko.dir/vm/alloc.c.o -c /build/reproducible-path/neko-2.4.0/vm/alloc.c
In file included from /build/reproducible-path/neko-2.4.0/vm/alloc.c:24:
/build/reproducible-path/neko-2.4.0/obj-x86_64-linux-gnu/neko.h:302:29: error: ‘bool’ cannot be defined via ‘typedef’
  302 |                 typedef int bool;
      |                             ^~~~
/build/reproducible-path/neko-2.4.0/obj-x86_64-linux-gnu/neko.h:302:29: note: ‘bool’ is a keyword with ‘-std=c23’ onwards
/build/reproducible-path/neko-2.4.0/obj-x86_64-linux-gnu/neko.h:302:17: warning: useless type name in empty declaration
  302 |                 typedef int bool;
      |                 ^~~~~~~
/build/reproducible-path/neko-2.4.0/vm/alloc.c: In function ‘neko_gc_init’:
/build/reproducible-path/neko-2.4.0/vm/alloc.c:123:9: warning: ‘GC_all_interior_pointers’ is deprecated [-Wdeprecated-declarations]
  123 |         GC_all_interior_pointers = 0;
      |         ^~~~~~~~~~~~~~~~~~~~~~~~
In file included from /build/reproducible-path/neko-2.4.0/vm/alloc.c:45:
/usr/include/gc/gc.h:193:31: note: declared here
  193 | GC_API GC_ATTR_DEPRECATED int GC_all_interior_pointers;
      |                               ^~~~~~~~~~~~~~~~~~~~~~~~
/build/reproducible-path/neko-2.4.0/vm/alloc.c:131:9: warning: ‘GC_java_finalization’ is deprecated [-Wdeprecated-declarations]
  131 |         GC_java_finalization = 1;
      |         ^~~~~~~~~~~~~~~~~~~~
/usr/include/gc/gc.h:219:31: note: declared here
  219 | GC_API GC_ATTR_DEPRECATED int GC_java_finalization;
      |                               ^~~~~~~~~~~~~~~~~~~~
/build/reproducible-path/neko-2.4.0/vm/alloc.c:134:9: warning: ‘GC_no_dls’ is deprecated [-Wdeprecated-declarations]
  134 |         GC_no_dls = 1;
      |         ^~~~~~~~~
/usr/include/gc/gc.h:306:31: note: declared here
  306 | GC_API GC_ATTR_DEPRECATED int GC_no_dls;
      |                               ^~~~~~~~~
make[3]: *** [CMakeFiles/libneko.dir/build.make:82: CMakeFiles/libneko.dir/vm/alloc.c.o] Error 1
make[3]: Leaving directory '/build/reproducible-path/neko-2.4.0/obj-x86_64-linux-gnu'
make[2]: *** [CMakeFiles/Makefile2:396: CMakeFiles/libneko.dir/all] Error 2
make[2]: Leaving directory '/build/reproducible-path/neko-2.4.0/obj-x86_64-linux-gnu'
make[1]: *** [Makefile:169: all] Error 2
make[1]: Leaving directory '/build/reproducible-path/neko-2.4.0/obj-x86_64-linux-gnu'
dh_auto_build: error: cd obj-x86_64-linux-gnu && make -j1 "INSTALL=install --strip-program=true" VERBOSE=1 returned exit code 2
make: *** [debian/rules:5: binary] Error 25
dpkg-buildpackage: error: debian/rules binary subprocess returned exit status 2