#1096824 icmake: ftbfs with GCC-15

#1096824#5
Date:
2025-02-17 17:19:34 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/icmake_13.01.00-1_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

[...]
modules/requiredexternal.cc
modules/setextension.cc
modules/setlocaltype.cc
modules/solveunknown.cc
modules/unknownexternals.cc
modules/symlink.cc
modules/unknowns.cc
./handleexception.cc
./usage.cc
./main.cc
/usr/bin/ld: warning: -z relro -Wl ignored
/usr/bin/ld: warning: -z now -Wl ignored
./scripts to ./tmp/{icmbuild.in,icmstart.in}

default skeleton files in usr/share/icmake/ to tmp/usr/share/icmake

    cp -r usr/share/icmake/CLASSES usr/share/icmake/frame usr/share/icmake/icmconf usr/share/icmake/main.cc usr/share/icmake/main.ih usr/share/icmake/parser usr/share/icmake/scanner usr/share/icmake/usage.cc usr/share/icmake/version.cc tmp/usr/share/icmake/
configuration files in etc/icmake to tmp/etc/icmake

    cp -r etc/icmake/icmstart.rc tmp/etc/icmake/
compress man-pages .1 in tmp/usr/share/man/man1

compress man-pages .7 in tmp/usr/share/man/man7

compress changelog in tmp/usr/share/doc/icmake

cp examples files to tmp/usr/share/doc/icmake

    cp -r examples tmp/usr/share/doc/icmake
cp rebuild script and friends to tmp/usr/share/doc/icmake/

    cp -r rebuild build2nd README.rebuild tmp/usr/share/doc/icmake
cp ./etc files to tmp/etc

    cp -r etc tmp/

Next: call ./install all ***AS ROOT***

dh_auto_build
make[1]: Leaving directory '/build/reproducible-path/icmake-13.01.00'
   create-stamp debian/debhelper-build-stamp
   dh_prep
	rm -f -- debian/icmake.substvars
	rm -fr -- debian/.debhelper/generated/icmake/ debian/icmake/ debian/tmp/
	rm -f debian/icmake.debhelper.log
   debian/rules override_dh_auto_install
make[1]: Entering directory '/build/reproducible-path/icmake-13.01.00'
# Add here commands to install the package into debian/icmake
./install   all debian/icmake
    ROOT DIRECTORY: '/'; storageDir: debian/icmake

programs:
    mkdir -p debian/icmake/usr/bin debian/icmake/usr/libexec/icmake
    cp tmp/usr/bin/icmake tmp/usr/bin/icmbuild tmp/usr/bin/icmodmap debian/icmake/usr/bin
    cp -r tmp/usr/libexec/icmake/icm-comp tmp/usr/libexec/icmake/icm-dep tmp/usr/libexec/icmake/icm-exec tmp/usr/libexec/icmake/icm-multicomp tmp/usr/libexec/icmake/icm-pp tmp/usr/libexec/icmake/icm-spch tmp/usr/libexec/icmake/icm-un debian/icmake/usr/libexec/icmake

scripts:
    mkdir -p debian/icmake/usr/bin debian/icmake/usr/libexec/icmake debian/icmake/usr/share/doc/icmake
    scripts/convert tmp/icmstart.sh debian/icmake/usr/bin/icmstart
    chmod +x debian/icmake/usr/bin/icmstart
    scripts/convert tmp/icmbuild.in debian/icmake/usr/libexec/icmake/icmbuild
    scripts/convert tmp/icmstart.in tmp/icmstart.im
    gzip -9cn tmp/icmstart.im > tmp/usr/share/doc/icmake/icmstart.im.gz
    tmp/usr/libexec/icmake/icm-pp tmp/icmstart.im tmp/icmstart.pim
/usr/include/c++/15/bits/basic_string.h:1373: constexpr std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::reference std::__cxx11::basic_string<_CharT, _Traits, _Alloc>::back() [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>; reference = char&]: Assertion '!empty()' failed.
./buildscripts/try: line 4:  6759 Aborted                 $*
make[1]: *** [debian/rules:37: override_dh_auto_install] Error 1
make[1]: Leaving directory '/build/reproducible-path/icmake-13.01.00'
make: *** [debian/rules:21: binary] Error 2
dpkg-buildpackage: error: debian/rules binary subprocess returned exit status 2