On 08.01.26 12:31, Sam James wrote: > Frank Scheiner via Gcc <[email protected]> writes: > >> 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 > > Is there a particular reason you're doing this? --disable-lto disables > LTO support and the LTO "frontend". --enable-lto will not mean a > bootstrap is done with LTO (i.e. --with-build-config=bootstrap-lto).
Yes, LTO made problems in the past for ia64 cross-builds in T2, which is why it is disabled for ia64 there, see [3]. I also have this disabled for EPIC Slack builds, from where the config is derived from (except for target, build and host as the bootstrap builds happen on T2 and not EPIC Slack, also to be comparable with past builds). Also because of the long build times I was a little bit reluctant to experiment with this for the past builds. :-) [3]: https://github.com/rxrbln/t2sde/blob/main/package/develop/gcc/gcc.desc#L23 But if you tell me that this won't affect the GCC bootstraps, I could enable that for future builds, of course. Also to possibly solve the below issues because of missing LTO support. So, just to be sure: `--enable-lto` is enough to support this, or do I also need "lto" in `--enable-languages=`? >> --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 > > > The libbacktrace tests don't use dejagnu so they don't have > `dg-require-effective-target lto` or some equivalent. That explains it. >> 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? >> > > The guality ones look like missing dg-require-effective-target lto. Ok, thanks for the pointer. >> ## 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 > > autogen is a required test dependency for the fixincludes tests. Seems like I don't have this installed. Ah, it requires guile, that will take a long time to build (at least it does on EPIC Slack). I'll see how I can get this fixed. Cheers, Frank
