Bug#1096702: ghostscript: ftbfs with GCC-15
Package: src:ghostscript
Version: 10.04.0~dfsg-2
Severity: important
Tags: sid forky
User: debian-gcc@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/ghostscript_10.04.0~dfsg-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
[...]
checking for working fork... yes
checking for working vfork... (cached) yes
checking for GNU libc compatible malloc... yes
checking for working memcmp... yes
checking whether lstat correctly handles trailing slash... yes
checking whether stat accepts an empty string... no
checking for bzero... yes
checking for dup2... yes
checking for floor... yes
checking for gettimeofday... yes
checking for memchr... yes
checking for memmove... yes
checking for memset... yes
checking for mkdir... yes
checking for mkfifo... yes
checking for modf... yes
checking for pow... yes
checking for putenv... yes
checking for rint... yes
checking for setenv... yes
checking for sqrt... yes
checking for strchr... yes
checking for strrchr... yes
checking for strspn... yes
checking for strstr... yes
checking minimum memory pointer alignment... done
checking for sqrtf... yes
checking for strnlen... yes
checking byteswap support... yes
checking for byteswap.h... yes
checking whether to explicitly disable strict aliasing... yes
configure: creating ./config.status
config.status: creating Makefile
make[1]: Leaving directory '/build/reproducible-path/ghostscript-10.04.0~dfsg'
debian/rules override_dh_auto_build
make[1]: Entering directory '/build/reproducible-path/ghostscript-10.04.0~dfsg'
dh_auto_build -- so
make -j1 so
make[2]: Entering directory '/build/reproducible-path/ghostscript-10.04.0~dfsg'
make -f Makefile so-subtarget BUILDDIRPREFIX=so
make[3]: Entering directory '/build/reproducible-path/ghostscript-10.04.0~dfsg'
make -f Makefile GS_DOT_O= REALMAIN_OBJ= GS_XE=./sobin/libgs.so.10.04 GPCL_XE=./sobin/libno_gpcl6.so.10.04 GXPS_XE=./sobin/libno_gxps.so.10.04 GPDF_XE=./sobin/libno_gpdf.so.10.04 GPDL_XE=./sobin/libno_gpdl.so.10.04 DISPLAY_DEV=./soobj/display.dev BUILDDIRPREFIX=so GENOPT='' LDFLAGS='-Wl,-z,relro '\
CFLAGS='-O2 -DNDEBUG -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -Wstrict-prototypes -Wundef -Wmissing-declarations -Wmissing-prototypes -Wwrite-strings -fno-strict-aliasing -Werror=declaration-after-statement -fno-builtin -fno-common -Werror=return-type -Wno-unused-local-typedefs -DHAVE_STDINT_H=1 -DHAVE_DIRENT_H=1 -DHAVE_SYS_DIR_H=1 -DHAVE_SYS_TIME_H=1 -DHAVE_SYS_TIMES_H=1 -DHAVE_INTTYPES_H=1 -DHAVE_LIBDL=1 -DGX_COLOR_INDEX_TYPE="unsigned long long" -D__USE_UNIX98=1 -DHAVE_SNPRINTF -DBUILD_PDF=1 -I./pdf -g -O2 -Werror=implicit-function-declaration -ffile-prefix-map=/build/reproducible-path/ghostscript-10.04.0~dfsg=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -fcf-protection -DHAVE_RESTRICT=1 -DUSE_LIBPAPER -I/usr/include/x86_64-linux-gnu -I/usr/include/webp -fno-strict-aliasing -DHAVE_POPEN_PROTO=1 ' prefix=/usr\
directories
make[4]: Entering directory '/build/reproducible-path/ghostscript-10.04.0~dfsg'
make[4]: Leaving directory '/build/reproducible-path/ghostscript-10.04.0~dfsg'
make -f Makefile GS_DOT_O= REALMAIN_OBJ= GS_XE=./sobin/libgs.so.10.04 GPCL_XE=./sobin/libno_gpcl6.so.10.04 GXPS_XE=./sobin/libno_gxps.so.10.04 GPDF_XE=./sobin/libno_gpdf.so.10.04 GPDL_XE=./sobin/libno_gpdl.so.10.04 DISPLAY_DEV=./soobj/display.dev BUILDDIRPREFIX=so GENOPT='' LDFLAGS='-Wl,-z,relro '\
CFLAGS='-O2 -DNDEBUG -Wdate-time -D_FORTIFY_SOURCE=2 -Wall -Wstrict-prototypes -Wundef -Wmissing-declarations -Wmissing-prototypes -Wwrite-strings -fno-strict-aliasing -Werror=declaration-after-statement -fno-builtin -fno-common -Werror=return-type -Wno-unused-local-typedefs -DHAVE_STDINT_H=1 -DHAVE_DIRENT_H=1 -DHAVE_SYS_DIR_H=1 -DHAVE_SYS_TIME_H=1 -DHAVE_SYS_TIMES_H=1 -DHAVE_INTTYPES_H=1 -DHAVE_LIBDL=1 -DGX_COLOR_INDEX_TYPE="unsigned long long" -D__USE_UNIX98=1 -DHAVE_SNPRINTF -DBUILD_PDF=1 -I./pdf -g -O2 -Werror=implicit-function-declaration -ffile-prefix-map=/build/reproducible-path/ghostscript-10.04.0~dfsg=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -fcf-protection -DHAVE_RESTRICT=1 -DUSE_LIBPAPER -I/usr/include/x86_64-linux-gnu -I/usr/include/webp -fno-strict-aliasing -DHAVE_POPEN_PROTO=1 ' prefix=/usr\
./soobj/aux/echogs ./soobj/aux/genarch
make[4]: Entering directory '/build/reproducible-path/ghostscript-10.04.0~dfsg'
gcc -O2 -DNDEBUG -Wall -Wstrict-prototypes -Wundef -Wmissing-declarations -Wmissing-prototypes -Wwrite-strings -fno-strict-aliasing -Werror=declaration-after-statement -fno-builtin -fno-common -Werror=return-type -Wno-unused-local-typedefs -DHAVE_STDINT_H=1 -DHAVE_DIRENT_H=1 -DHAVE_SYS_DIR_H=1 -DHAVE_SYS_TIME_H=1 -DHAVE_SYS_TIMES_H=1 -DHAVE_INTTYPES_H=1 -DHAVE_LIBDL=1 -DGX_COLOR_INDEX_TYPE="unsigned long long" -D__USE_UNIX98=1 -DHAVE_SNPRINTF -g -O2 -Werror=implicit-function-declaration -ffile-prefix-map=/build/reproducible-path/ghostscript-10.04.0~dfsg=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -fcf-protection -DHAVE_RESTRICT=1 -fno-strict-aliasing -DHAVE_POPEN_PROTO=1 -I./base -o ./soobj/aux/echogs ./base/echogs.c -lm -ldl -lidn -lpaper -ltiff -rdynamic -lfontconfig -lfreetype -lfreetype -lopenjp2 -lexpat -lz
In file included from ./base/echogs.c:18:
./base/stdpre.h:348:13: error: ‘bool’ cannot be defined via ‘typedef’
348 | typedef int bool;
| ^~~~
./base/stdpre.h:348:13: note: ‘bool’ is a keyword with ‘-std=c23’ onwards
./base/stdpre.h:348:1: warning: useless type name in empty declaration
348 | typedef int bool;
| ^~~~~~~
make[4]: *** [base/unix-aux.mak:60: soobj/aux/echogs] Error 1
make[4]: Leaving directory '/build/reproducible-path/ghostscript-10.04.0~dfsg'
make[3]: *** [base/unix-dll.mak:320: so-only-subtarget] Error 2
make[3]: Leaving directory '/build/reproducible-path/ghostscript-10.04.0~dfsg'
make[2]: *** [base/unix-dll.mak:281: so] Error 2
make[2]: Leaving directory '/build/reproducible-path/ghostscript-10.04.0~dfsg'
dh_auto_build: error: make -j1 so returned exit code 2
make[1]: *** [debian/rules:60: override_dh_auto_build] Error 25
make[1]: Leaving directory '/build/reproducible-path/ghostscript-10.04.0~dfsg'
make: *** [debian/rules:43: binary] Error 2
dpkg-buildpackage: error: debian/rules binary subprocess returned exit status 2
Reply to: