#1133457 diagnostics: ftbfs with GCC-16

#1133457#5
Date:
2026-04-13 13:02:43 UTC
From:
To:
Hi,

diagnostics fails to build in a test rebuild on at least amd64 and arm64 with
gcc-16/g++-16, but builds properly with gcc-15/g++-15. The severity of this
report will be raised before the forky release.

The full build log can be found at:
https://people.debian.org/~ema/gcc-16-rebuilds/output-1/diagnostics_arm64.build.xz

The last lines of the build log are at the end of this report.

To build with GCC 16, either set CC=gcc-16 CXX=g++-16 explicitly,
or install the gcc, g++, gfortran, ... packages from experimental.

  apt-get -t=experimental install g++

Common build failures include unused (but set) variables, array subscripts
partly outside array bounds, and new/dropped symbols in Debian symbols files.
For other C/C++ related build failures see the porting guide at
http://gcc.gnu.org/gcc-16/porting_to.html

Please only close this issue after double-checking that the package can be
built correctly with GCC 16.

Please do not reassign this bug to another package. If a fix in another package
is required, then file a bug for the other package (or clone), and mark this
bug as blocked by the bug in the other package.

[...]


if test -f ./config/update-makefiles ; then \
	./config/update-makefiles  --disable diagnostics/ ; fi
make[3]: Leaving directory '/build/reproducible-path/diagnostics-0.3.3'
Making all in diagnostics
make[3]: Entering directory '/build/reproducible-path/diagnostics-0.3.3/diagnostics'
rm -f *.o *.lo *.la
rm -f diag_stamp_*
touch diag_stamp_2
make  all-recursive
make[4]: Entering directory '/build/reproducible-path/diagnostics-0.3.3/diagnostics'
Making all in extensions
make[5]: Entering directory '/build/reproducible-path/diagnostics-0.3.3/diagnostics/extensions'
rm -f *.o *.lo *.la
rm -f diag_stamp_*
touch diag_stamp_2
make  all-recursive
make[6]: Entering directory '/build/reproducible-path/diagnostics-0.3.3/diagnostics/extensions'
Making all in instrumentation
make[7]: Entering directory '/build/reproducible-path/diagnostics-0.3.3/diagnostics/extensions/instrumentation'
rm -f *.o *.lo *.la
rm -f diag_stamp_*
touch diag_stamp_2
make  all-recursive
make[8]: Entering directory '/build/reproducible-path/diagnostics-0.3.3/diagnostics/extensions/instrumentation'
make[9]: Entering directory '/build/reproducible-path/diagnostics-0.3.3/diagnostics/extensions/instrumentation'
/bin/bash ../../../libtool  --tag=CXX   --mode=compile aarch64-linux-gnu-g++ -DHAVE_CONFIG_H   -I../../.. -DDEBUG__LEVEL__=2  -Wdate-time -D_FORTIFY_SOURCE=2  -g -O2 -ffile-prefix-map=/build/reproducible-path/diagnostics-0.3.3=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -mbranch-protection=standard -Wall -Werror -pedantic -Wno-unused-function -MT load_symbol.lo -MD -MP -MF .deps/load_symbol.Tpo -c -o load_symbol.lo load_symbol.cpp
libtool: compile:  aarch64-linux-gnu-g++ -DHAVE_CONFIG_H -I../../.. -DDEBUG__LEVEL__=2 -Wdate-time -D_FORTIFY_SOURCE=2 -g -O2 -ffile-prefix-map=/build/reproducible-path/diagnostics-0.3.3=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -mbranch-protection=standard -Wall -Werror -pedantic -Wno-unused-function -MT load_symbol.lo -MD -MP -MF .deps/load_symbol.Tpo -c load_symbol.cpp  -fPIC -DPIC -o .libs/load_symbol.o
libtool: compile:  aarch64-linux-gnu-g++ -DHAVE_CONFIG_H -I../../.. -DDEBUG__LEVEL__=2 -Wdate-time -D_FORTIFY_SOURCE=2 -g -O2 -ffile-prefix-map=/build/reproducible-path/diagnostics-0.3.3=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -mbranch-protection=standard -Wall -Werror -pedantic -Wno-unused-function -MT load_symbol.lo -MD -MP -MF .deps/load_symbol.Tpo -c load_symbol.cpp -o load_symbol.o >/dev/null 2>&1
mv -f .deps/load_symbol.Tpo .deps/load_symbol.Plo
/bin/bash ../../../libtool  --tag=CXX   --mode=link aarch64-linux-gnu-g++  -g -O2 -ffile-prefix-map=/build/reproducible-path/diagnostics-0.3.3=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -mbranch-protection=standard -Wall -Werror -pedantic -Wno-unused-function  -Wl,-z,relro -lACE -lpthread -o libinstrumentation.la  load_symbol.lo
libtool: link: aarch64-linux-gnu-ar cr .libs/libinstrumentation.a .libs/load_symbol.o
libtool: link: aarch64-linux-gnu-ranlib .libs/libinstrumentation.a
libtool: link: ( cd ".libs" && rm -f "libinstrumentation.la" && ln -s "../libinstrumentation.la" "libinstrumentation.la" )
make[9]: Leaving directory '/build/reproducible-path/diagnostics-0.3.3/diagnostics/extensions/instrumentation'
make[8]: Leaving directory '/build/reproducible-path/diagnostics-0.3.3/diagnostics/extensions/instrumentation'
make[7]: Leaving directory '/build/reproducible-path/diagnostics-0.3.3/diagnostics/extensions/instrumentation'
Making all in memory
make[7]: Entering directory '/build/reproducible-path/diagnostics-0.3.3/diagnostics/extensions/memory'
rm -f *.o *.lo *.la
rm -f diag_stamp_*
touch diag_stamp_2
make  all-recursive
make[8]: Entering directory '/build/reproducible-path/diagnostics-0.3.3/diagnostics/extensions/memory'
make[9]: Entering directory '/build/reproducible-path/diagnostics-0.3.3/diagnostics/extensions/memory'
/bin/bash ../../../libtool  --tag=CXX   --mode=compile aarch64-linux-gnu-g++ -DHAVE_CONFIG_H   -I../../.. -DDEBUG__LEVEL__=2 -Wdate-time -D_FORTIFY_SOURCE=2  -g -O2 -ffile-prefix-map=/build/reproducible-path/diagnostics-0.3.3=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -mbranch-protection=standard -Wall -Werror -pedantic -Wno-unused-function -MT allocation_database.lo -MD -MP -MF .deps/allocation_database.Tpo -c -o allocation_database.lo allocation_database.cpp
libtool: compile:  aarch64-linux-gnu-g++ -DHAVE_CONFIG_H -I../../.. -DDEBUG__LEVEL__=2 -Wdate-time -D_FORTIFY_SOURCE=2 -g -O2 -ffile-prefix-map=/build/reproducible-path/diagnostics-0.3.3=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -mbranch-protection=standard -Wall -Werror -pedantic -Wno-unused-function -MT allocation_database.lo -MD -MP -MF .deps/allocation_database.Tpo -c allocation_database.cpp  -fPIC -DPIC -o .libs/allocation_database.o
In file included from allocation_database.cpp:31:
../../../diagnostics/extensions/memory/malloc_allocator.hpp:80:50: error: 'const_pointer' in 'class std::allocator<void>' does not name a type [-Wtemplate-body]
   80 |         typedef typename ::std::allocator<void>::const_pointer  const_void_pointer;
      |                                                  ^~~~~~~~~~~~~
make[9]: *** [Makefile:542: allocation_database.lo] Error 1
make[9]: Leaving directory '/build/reproducible-path/diagnostics-0.3.3/diagnostics/extensions/memory'
make[8]: *** [Makefile:603: all-recursive] Error 1
make[8]: Leaving directory '/build/reproducible-path/diagnostics-0.3.3/diagnostics/extensions/memory'
make[7]: *** [Makefile:461: all] Error 2
make[7]: Leaving directory '/build/reproducible-path/diagnostics-0.3.3/diagnostics/extensions/memory'
make[6]: *** [Makefile:433: all-recursive] Error 1
make[6]: Leaving directory '/build/reproducible-path/diagnostics-0.3.3/diagnostics/extensions'
make[5]: *** [Makefile:386: all] Error 2
make[5]: Leaving directory '/build/reproducible-path/diagnostics-0.3.3/diagnostics/extensions'
make[4]: *** [Makefile:828: all-recursive] Error 1
make[4]: Leaving directory '/build/reproducible-path/diagnostics-0.3.3/diagnostics'
make[3]: *** [Makefile:680: all] Error 2
make[3]: Leaving directory '/build/reproducible-path/diagnostics-0.3.3/diagnostics'
make[2]: *** [Makefile:546: all-recursive] Error 1
make[2]: Leaving directory '/build/reproducible-path/diagnostics-0.3.3'
make[1]: *** [Makefile:477: all] Error 2
make[1]: Leaving directory '/build/reproducible-path/diagnostics-0.3.3'
dh_auto_build: error: make -j1 returned exit code 2
make: *** [debian/rules:15: binary] Error 255
dpkg-buildpackage: error: debian/rules binary subprocess failed with exit status 2