Hi again, for reference the testsuite results for gcc-16-20251214 are on [1]:
[1]: https://gcc.gnu.org/pipermail/gcc-testresults/2025-December/865397.html ...the results for GCC 15.1.0 are on [2]: [2]: https://gcc.gnu.org/pipermail/gcc-testresults/2025-August/855566.html ## LTO ## First I'd like to point you to some issues regarding LTO during the testsuite run. The bootstrap was configured w/o LTO: ``` configure flags: --prefix=/usr --libdir=/usr/lib --mandir=/usr/man --infodir=/usr/info --enable-shared --enable-bootstrap --enable-languages=c,c++ --enable-threads=posix --enable-checking=release --with-system-zlib --enable-libstdcxx-dual-abi --with-default-libstdcxx-abi=new --disable-libstdcxx-pch --disable-libunwind-exceptions --enable-__cxa_atexit --disable-libssp --enable-gnu-indirect-function --enable-gnu-unique-object --enable-plugin --disable-lto --disable-install-libiberty --disable-werror --with-gnu-ld --with-isl --verbose --with-arch-directory=ia64 --disable-gtktest --enable-clocale=gnu --disable-multilib --target=ia64-t2-linux-gnu --build=ia64-t2-linux-gnu --host=ia64-t2-linux-gnu ``` ...but looking into the testsuite log, (some) LTO tests are still done: ``` [...] /dev/shm/gcc-16-20251214/gcc.build.lnx/./prev-gcc/xgcc -B/dev/shm/gcc-16-20251214/gcc.build.lnx/./prev-gcc/ -B/usr/ia64-t2-linux-gnu/bin/ -B/usr/ia64-t2-linux-gnu/bin/ -B/usr/ia64-t2-linux-gnu/lib/ -isystem /usr/ia64-t2-linux-gnu/include -isystem /usr/ia64-t2-linux-gnu/sys-include -DHAVE_CONFIG_H -I. -I../../libbacktrace -I ../../libbacktrace/../include -I ../../libbacktrace/../libgcc -I ../libgcc -funwind-tables -frandom-seed=btest_lto-btest.o -W -Wall -Wwrite-strings -Wstrict-prototypes -Wmissing-prototypes -Wold-style-definition -Wmissing-format-attribute -Wcast-qual -Wno-attributes -Wpointer-arith -g -O -flto -g -O2 -c -o btest_lto-btest.o `test -f 'btest.c' || echo '../../libbacktrace/'`btest.c cc1: error: LTO support has not been enabled in this configuration make[3]: *** [Makefile:1604: btest_lto-btest.o] Error 1 /dev/shm/gcc-16-20251214/gcc.build.lnx/./prev-gcc/xgcc -B/dev/shm/gcc-16-20251214/gcc.build.lnx/./prev-gcc/ -B/usr/ia64-t2-linux-gnu/bin/ -B/usr/ia64-t2-linux-gnu/bin/ -B/usr/ia64-t2-linux-gnu/lib/ -isystem /usr/ia64-t2-linux-gnu/include -isystem /usr/ia64-t2-linux-gnu/sys-include -DHAVE_CONFIG_H -I. -I../../libbacktrace -I ../../libbacktrace/../include -I ../../libbacktrace/../libgcc -I ../libgcc -funwind-tables -frandom-seed=btest_lto-testlib.o -W -Wall -Wwrite-strings -Wstrict-prototypes -Wmissing-prototypes -Wold-style-definition -Wmissing-format-attribute -Wcast-qual -Wno-attributes -Wpointer-arith -g -O -flto -g -O2 -c -o btest_lto-testlib.o `test -f 'testlib.c' || echo '../../libbacktrace/'`testlib.c cc1: error: LTO support has not been enabled in this configuration make[3]: *** [Makefile:1610: btest_lto-testlib.o] Error 1 [...] make[3]: Target 'btest_lto' not remade because of errors. [...] ``` Fortunately this was ignored during the testsuite run, so it kept going despite these errors, though of course these resulted in failing tests: ``` FAIL: c-c++-common/guality/Og-dce-1.c -Og -flto (test for excess errors) FAIL: c-c++-common/guality/Og-dce-2.c -Og -flto (test for excess errors) [...] FAIL: c-c++-common/guality/Og-dce-3.c -Og -flto (test for excess errors) [...] FAIL: c-c++-common/guality/Og-global-dse-1.c -Og -flto (test for excess errors) [...] FAIL: c-c++-common/guality/Og-static-wo-1.c -Og -flto (test for excess errors) [...] FAIL: c-c++-common/guality/Og-dce-3.c -Og -flto (test for excess errors) [...] FAIL: c-c++-common/guality/Og-global-dse-1.c -Og -flto (test for excess errors) [...] FAIL: c-c++-common/guality/Og-static-wo-1.c -Og -flto (test for excess errors) [...] FAIL: c-c++-common/guality/Og-dce-1.c -Og -flto (test for excess errors) FAIL: c-c++-common/guality/Og-dce-2.c -Og -flto (test for excess errors) [...] ``` I wonder, is LTO considered a default? Or should these tests actually not run for a non-LTO config? ## Other errors ## There are also other errors present, but comparing to the testsuite log for GCC 15.2.0 (I don't have one for GCC 15.1.0 thanks to a typo :-() these are not new for gcc-16-20251214: ``` # ( date; time make -k -j9 check 2>&1; echo $?; date ) 2>&1 | tee <LOGFILE> [...] make[2]: Entering directory '/dev/shm/gcc-16-20251214/gcc.build.lnx/fixincludes' autogen -T ../../fixincludes/check.tpl ../../fixincludes/inclhack.def make[2]: Entering directory '/dev/shm/gcc-16-20251214/gcc.build.lnx/gcc' make[2]: autogen: No such file or directory make[2]: *** [Makefile:180: check] Error 127 make[2]: Leaving directory '/dev/shm/gcc-16-20251214/gcc.build.lnx/fixincludes' [...] make[1]: *** [Makefile:4215: check-fixincludes] Error 2 [...] ## here be the lto errors from above [...] make[3]: Leaving directory '/dev/shm/gcc-16-20251214/gcc.build.lnx/libbacktrace' make[2]: *** [Makefile:2519: check-am] Error 2 make[2]: Target 'check' not remade because of errors. make[2]: Leaving directory '/dev/shm/gcc-16-20251214/gcc.build.lnx/libbacktrace' make[1]: *** [Makefile:7907: check-libbacktrace] Error 2 [...] make[1]: Leaving directory '/dev/shm/gcc-16-20251214/gcc.build.lnx' make: *** [Makefile:2692: do-check] Error 2 make: Target 'check' not remade because of errors. real 400m57.482s user 2907m2.725s sys 156m12.341s 2 [...] ``` ## Comparison of testsuite results ## Last a comparison between GCC 15.1.0 (left) and gcc-16-20251214 (right) results: ``` === g++ Summary === # of expected passes 232298 245668 # of unexpected failures 162 282 # of unexpected successes 3 # of expected failures 2138 2188 # of unresolved testcases 5 5 # of unsupported tests 2228 2221 === gcc Summary === # of expected passes 143723 146675 # of unexpected failures 1064 1161 # of unexpected successes 18 23 # of expected failures 1369 1413 # of unresolved testcases 22 13 # of unsupported tests 3536 3686 === libatomic Summary === # of expected passes 54 54 === libgomp Summary === # of expected passes 5792 6064 # of unexpected failures 3 3 # of expected failures 47 47 # of unsupported tests 405 479 === libstdc++ Summary === # of expected passes 18162 19243 # of unexpected failures 9 245 # of expected failures 131 140 # of unresolved testcases 2 # of unsupported tests 740 786 ``` Overall this looks like an improvement to me. Although the number of unexpected failures for libstdc++ increased dramatically. But the number of expected passes - where they increased - increased more than the number of failures. Cheers, Frank
