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).

> --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.

> 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.

>
> ## 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.

> 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

Attachment: signature.asc
Description: PGP signature

Reply via email to