Bug#1133635: spirv-tools: ftbfs with GCC-16
Emanuele Rocca <[email protected]>
| Newsgroups | gmane.linux.debian.devel.x |
|---|---|
| Message-ID | <[email protected]> |
Package: src:spirv-tools Version: 2026.1-1 Severity: important Tags: sid forky ftbfs User: [email protected] Usertags: ftbfs-gcc-16 Hi, spirv-tools 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/spirv-tools_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. [...] inlined from ‘spvtools::utils::ScopedTimer<TimerType>::~ScopedTimer() [with TimerType = spvtools::utils::Timer]’ at /build/reproducible-path/spirv-tools-2026.1/source/util/timer.h:260:16, inlined from ‘spvtools::opt::Pass::Status spvtools::opt::PassManager::Run(spvtools::opt::IRContext*)’ at /build/reproducible-path/spirv-tools-2026.1/source/opt/pass_manager.cpp:78:3: /build/reproducible-path/spirv-tools-2026.1/source/util/timer.h:335:9: error: array subscript ‘spvtools::utils::CumulativeTimer[0]’ is partly outside array bounds of ‘void [384]’ [-Werror=array-bounds=] 335 | if (pgfaults_ >= 0 && Timer::PageFault() >= 0) | ^~~~~~~~~ In constructor ‘spvtools::utils::ScopedTimer<TimerType>::ScopedTimer(std::ostream*, const char*, bool) [with TimerType = spvtools::utils::Timer]’, inlined from ‘spvtools::opt::Pass::Status spvtools::opt::PassManager::Run(spvtools::opt::IRContext*)’ at /build/reproducible-path/spirv-tools-2026.1/source/opt/pass_manager.cpp:57:5: /build/reproducible-path/spirv-tools-2026.1/source/util/timer.h:253:15: note: object of size 384 allocated by ‘operator new’ 253 | : timer(new TimerType(out, measure_mem_usage)), tag_(tag) { | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /build/reproducible-path/spirv-tools-2026.1/source/util/timer.h:253:15: note: object of size 384 allocated by ‘operator new’ In member function ‘virtual void spvtools::utils::CumulativeTimer::Stop()’, inlined from ‘spvtools::utils::ScopedTimer<TimerType>::~ScopedTimer() [with TimerType = spvtools::utils::Timer]’ at /build/reproducible-path/spirv-tools-2026.1/source/util/timer.h:260:16, inlined from ‘spvtools::opt::Pass::Status spvtools::opt::PassManager::Run(spvtools::opt::IRContext*)’ at /build/reproducible-path/spirv-tools-2026.1/source/opt/pass_manager.cpp:78:3: /build/reproducible-path/spirv-tools-2026.1/source/util/timer.h:336:17: error: array subscript ‘spvtools::utils::CumulativeTimer[0]’ is partly outside array bounds of ‘void [384]’ [-Werror=array-bounds=] 336 | pgfaults_ += Timer::PageFault(); | ~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~ In constructor ‘spvtools::utils::ScopedTimer<TimerType>::ScopedTimer(std::ostream*, const char*, bool) [with TimerType = spvtools::utils::Timer]’, inlined from ‘spvtools::opt::Pass::Status spvtools::opt::PassManager::Run(spvtools::opt::IRContext*)’ at /build/reproducible-path/spirv-tools-2026.1/source/opt/pass_manager.cpp:57:5: /build/reproducible-path/spirv-tools-2026.1/source/util/timer.h:253:15: note: object of size 384 allocated by ‘operator new’ 253 | : timer(new TimerType(out, measure_mem_usage)), tag_(tag) { | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /build/reproducible-path/spirv-tools-2026.1/source/util/timer.h:253:15: note: object of size 384 allocated by ‘operator new’ In member function ‘virtual void spvtools::utils::CumulativeTimer::Stop()’, inlined from ‘spvtools::utils::ScopedTimer<TimerType>::~ScopedTimer() [with TimerType = spvtools::utils::Timer]’ at /build/reproducible-path/spirv-tools-2026.1/source/util/timer.h:260:16, inlined from ‘spvtools::opt::Pass::Status spvtools::opt::PassManager::Run(spvtools::opt::IRContext*)’ at /build/reproducible-path/spirv-tools-2026.1/source/opt/pass_manager.cpp:78:3: /build/reproducible-path/spirv-tools-2026.1/source/util/timer.h:338:17: error: array subscript ‘spvtools::utils::CumulativeTimer[0]’ is partly outside array bounds of ‘void [384]’ [-Werror=array-bounds=] 338 | pgfaults_ = -1; | ~~~~~~~~~~^~~~ In constructor ‘spvtools::utils::ScopedTimer<TimerType>::ScopedTimer(std::ostream*, const char*, bool) [with TimerType = spvtools::utils::Timer]’, inlined from ‘spvtools::opt::Pass::Status spvtools::opt::PassManager::Run(spvtools::opt::IRContext*)’ at /build/reproducible-path/spirv-tools-2026.1/source/opt/pass_manager.cpp:57:5: /build/reproducible-path/spirv-tools-2026.1/source/util/timer.h:253:15: note: object of size 384 allocated by ‘operator new’ 253 | : timer(new TimerType(out, measure_mem_usage)), tag_(tag) { | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /build/reproducible-path/spirv-tools-2026.1/source/util/timer.h:253:15: note: object of size 384 allocated by ‘operator new’ cc1plus: all warnings being treated as errors make[3]: *** [source/opt/CMakeFiles/SPIRV-Tools-opt.dir/build.make:1230: source/opt/CMakeFiles/SPIRV-Tools-opt.dir/pass_manager.cpp.o] Error 1 make[3]: *** Waiting for unfinished jobs.... [ 73%] Linking CXX executable spirv-cfg cd /build/reproducible-path/spirv-tools-2026.1/obj-aarch64-linux-gnu/tools && /usr/bin/cmake -E cmake_link_script CMakeFiles/spirv-cfg.dir/link.txt --verbose=1 /usr/bin/c++ -g -O2 -ffile-prefix-map=/build/reproducible-path/spirv-tools-2026.1=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -mbranch-protection=standard -Wdate-time -D_FORTIFY_SOURCE=2 -O3 -DNDEBUG -Wl,-z,relro -Wl,--dependency-file=CMakeFiles/spirv-cfg.dir/link.d "CMakeFiles/spirv-cfg.dir/cfg/cfg.cpp.o" "CMakeFiles/spirv-cfg.dir/cfg/bin_to_dot.cpp.o" "CMakeFiles/spirv-cfg.dir/io.cpp.o" "CMakeFiles/spirv-cfg.dir/util/flags.cpp.o" -o spirv-cfg ../source/libSPIRV-Tools.a -lrt make[3]: Leaving directory '/build/reproducible-path/spirv-tools-2026.1/obj-aarch64-linux-gnu' [ 73%] Built target spirv-cfg [ 74%] Linking CXX executable spirv-as cd /build/reproducible-path/spirv-tools-2026.1/obj-aarch64-linux-gnu/tools && /usr/bin/cmake -E cmake_link_script CMakeFiles/spirv-as.dir/link.txt --verbose=1 [ 75%] Linking CXX executable spirv-val /usr/bin/c++ -g -O2 -ffile-prefix-map=/build/reproducible-path/spirv-tools-2026.1=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -mbranch-protection=standard -Wdate-time -D_FORTIFY_SOURCE=2 -O3 -DNDEBUG -Wl,-z,relro -Wl,--dependency-file=CMakeFiles/spirv-as.dir/link.d "CMakeFiles/spirv-as.dir/as/as.cpp.o" "CMakeFiles/spirv-as.dir/io.cpp.o" "CMakeFiles/spirv-as.dir/util/flags.cpp.o" -o spirv-as ../source/libSPIRV-Tools.a -lrt cd /build/reproducible-path/spirv-tools-2026.1/obj-aarch64-linux-gnu/tools && /usr/bin/cmake -E cmake_link_script CMakeFiles/spirv-val.dir/link.txt --verbose=1 make[3]: Leaving directory '/build/reproducible-path/spirv-tools-2026.1/obj-aarch64-linux-gnu' [ 75%] Built target spirv-as /usr/bin/c++ -g -O2 -ffile-prefix-map=/build/reproducible-path/spirv-tools-2026.1=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -mbranch-protection=standard -Wdate-time -D_FORTIFY_SOURCE=2 -O3 -DNDEBUG -Wl,-z,relro -Wl,--dependency-file=CMakeFiles/spirv-val.dir/link.d "CMakeFiles/spirv-val.dir/util/flags.cpp.o" "CMakeFiles/spirv-val.dir/val/val.cpp.o" "CMakeFiles/spirv-val.dir/util/cli_consumer.cpp.o" "CMakeFiles/spirv-val.dir/io.cpp.o" -o spirv-val ../source/libSPIRV-Tools.a -lrt make[3]: Leaving directory '/build/reproducible-path/spirv-tools-2026.1/obj-aarch64-linux-gnu' [ 75%] Built target spirv-val [ 75%] Linking CXX executable spirv-objdump cd /build/reproducible-path/spirv-tools-2026.1/obj-aarch64-linux-gnu/tools && /usr/bin/cmake -E cmake_link_script CMakeFiles/spirv-objdump.dir/link.txt --verbose=1 [ 75%] Linking CXX executable spirv-dis cd /build/reproducible-path/spirv-tools-2026.1/obj-aarch64-linux-gnu/tools && /usr/bin/cmake -E cmake_link_script CMakeFiles/spirv-dis.dir/link.txt --verbose=1 /usr/bin/c++ -g -O2 -ffile-prefix-map=/build/reproducible-path/spirv-tools-2026.1=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -mbranch-protection=standard -Wdate-time -D_FORTIFY_SOURCE=2 -O3 -DNDEBUG -Wl,-z,relro -Wl,--dependency-file=CMakeFiles/spirv-dis.dir/link.d "CMakeFiles/spirv-dis.dir/util/flags.cpp.o" "CMakeFiles/spirv-dis.dir/dis/dis.cpp.o" "CMakeFiles/spirv-dis.dir/io.cpp.o" -o spirv-dis ../source/libSPIRV-Tools.a -lrt make[3]: Leaving directory '/build/reproducible-path/spirv-tools-2026.1/obj-aarch64-linux-gnu' [ 75%] Built target spirv-dis /usr/bin/c++ -g -O2 -ffile-prefix-map=/build/reproducible-path/spirv-tools-2026.1=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -mbranch-protection=standard -Wdate-time -D_FORTIFY_SOURCE=2 -O3 -DNDEBUG -Wl,-z,relro -Wl,--dependency-file=CMakeFiles/spirv-objdump.dir/link.d "CMakeFiles/spirv-objdump.dir/objdump/objdump.cpp.o" "CMakeFiles/spirv-objdump.dir/objdump/extract_source.cpp.o" "CMakeFiles/spirv-objdump.dir/util/cli_consumer.cpp.o" "CMakeFiles/spirv-objdump.dir/io.cpp.o" "CMakeFiles/spirv-objdump.dir/util/flags.cpp.o" -o spirv-objdump ../source/libSPIRV-Tools.a -lrt make[3]: Leaving directory '/build/reproducible-path/spirv-tools-2026.1/obj-aarch64-linux-gnu' [ 75%] Built target spirv-objdump make[3]: Leaving directory '/build/reproducible-path/spirv-tools-2026.1/obj-aarch64-linux-gnu' make[2]: *** [CMakeFiles/Makefile2:1144: source/opt/CMakeFiles/SPIRV-Tools-opt.dir/all] Error 2 make[2]: Leaving directory '/build/reproducible-path/spirv-tools-2026.1/obj-aarch64-linux-gnu' make[1]: *** [Makefile:149: all] Error 2 make[1]: Leaving directory '/build/reproducible-path/spirv-tools-2026.1/obj-aarch64-linux-gnu' dh_auto_build: error: cd obj-aarch64-linux-gnu && make -j128 INSTALL="install --strip-program=true" VERBOSE=1 returned exit code 2 make: *** [debian/rules:6: binary] Error 25 dpkg-buildpackage: error: debian/rules binary subprocess failed with exit status 2