From: Joel Brobecker Date: Tue, 24 May 2022 19:51:42 +0000 (-0700) Subject: gcc.misc-tests/outputs.exp: Use link test to check for -gsplit-dwarf support X-Git-Tag: basepoints/gcc-14~6459 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=0aee03cb638c262846f55477b40828f694c846a0;p=thirdparty%2Fgcc.git gcc.misc-tests/outputs.exp: Use link test to check for -gsplit-dwarf support We have noticed that, when running the GCC testsuite on AArch64 RTEMS 6, we have about 150 tests failing due to a link failure. When investigating, we found that all the tests were failing due to the use of -gsplit-dwarf. On this platform, using -gsplit-dwarf currently causes an error during the link: | /[...]/ld: a.out section `.unexpected_sections' will not fit | in region `UNEXPECTED_SECTIONS' | /[...]/ld: region `UNEXPECTED_SECTIONS' overflowed by 56 bytes The error is a bit cryptic, but the source of the issue is that the linker does not currently support the sections generated by -gsplit-dwarf (.debug_gnu_pubnames, .debug_gnu_pubtypes). This means that the -gsplit-dwarf feature itself really isn't supported on this platform, at least for the moment. This commit enhances the -gsplit-dwarf support check to be a compile-and-link check, rather than just a compile check. This allows it to properly detect that this feature isn't supported on platforms such as AArch64 RTEMS where the compilation works, but not the link. Tested on aarch64-rtems, where a little over 150 tests are now passing, instead of failing, as well as on x86_64-linux, where the results are identical, and where the .log file was also manually inspected to make sure that the use of the -gsplit-dwarf option was preserved. gcc/testsuite/ChangeLog: * gcc.misc-tests/outputs.exp: Make the -gsplit-dwarf test a compile-and-link test rather than a compile-only test. --- diff --git a/gcc/testsuite/gcc.misc-tests/outputs.exp b/gcc/testsuite/gcc.misc-tests/outputs.exp index bc1fbe4eb7f..afae735e92d 100644 --- a/gcc/testsuite/gcc.misc-tests/outputs.exp +++ b/gcc/testsuite/gcc.misc-tests/outputs.exp @@ -36,8 +36,8 @@ gcc_parallel_test_enable 0 # having to deal with .dSYM directories, as long as -gsplit-dwarf is # not supported on platforms that use .dSYM directories. set gsplit_dwarf "-g -gsplit-dwarf" -if ![check_no_compiler_messages gsplitdwarf object { - void foo (void) { } +if ![check_no_compiler_messages gsplitdwarf executable { + int main (void) { return 0; } } "$gsplit_dwarf"] { set gsplit_dwarf "" }