From: H.J. Lu Date: Fri, 16 Aug 2024 10:48:34 +0000 (-0700) Subject: lto: Add a test for PR ld/32083 X-Git-Tag: gdb-16-branchpoint~1090 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=eb53cbeca8cf456b4a79f33d7a2a586a99b4b2e3;p=thirdparty%2Fbinutils-gdb.git lto: Add a test for PR ld/32083 Add a test for PR ld/32083 and xfail the test for GCC without the fix: commit a98dd536b1017c2b814a3465206c6c01b2890998 Author: H.J. Lu Date: Wed Aug 21 07:25:25 2024 -0700 Update LDPT_REGISTER_CLAIM_FILE_HOOK_V2 linker plugin hook PR ld/32083 * testsuite/ld-plugin/common-2a.c: New file. * testsuite/ld-plugin/common-2b.c: Likewise. * testsuite/ld-plugin/lto.exp: Run PR ld/32083 test. Signed-off-by: H.J. Lu --- diff --git a/ld/testsuite/ld-plugin/common-2a.c b/ld/testsuite/ld-plugin/common-2a.c new file mode 100644 index 00000000000..fccfca72868 --- /dev/null +++ b/ld/testsuite/ld-plugin/common-2a.c @@ -0,0 +1,11 @@ +#include + +int foo; + +int main() +{ + if (foo == 0) + printf ("PASS\n"); + + return 0; +} diff --git a/ld/testsuite/ld-plugin/common-2b.c b/ld/testsuite/ld-plugin/common-2b.c new file mode 100644 index 00000000000..c014c673f74 --- /dev/null +++ b/ld/testsuite/ld-plugin/common-2b.c @@ -0,0 +1,6 @@ +int foo; + +void +func (void) +{ +} diff --git a/ld/testsuite/ld-plugin/lto.exp b/ld/testsuite/ld-plugin/lto.exp index bbd68407edc..6424ba42335 100644 --- a/ld/testsuite/ld-plugin/lto.exp +++ b/ld/testsuite/ld-plugin/lto.exp @@ -238,6 +238,23 @@ set lto_link_tests [list \ {} \ "libdefinition-1.a" \ ] \ + [list \ + "Build common-2a.o" \ + "" \ + "-O2 -fcommon -flto $lto_no_fat" \ + {common-2a.c} \ + {} \ + "" \ + "c" \ + ] \ + [list \ + "Build libcommon-2.a" \ + "$plug_opt" \ + "-O2 -fcommon -flto $lto_no_fat" \ + {common-2b.c} \ + {} \ + "libcommon-2.a" \ + ] \ ] if { [at_least_gcc_version 10 0] && [check_lto_shared_available] } { @@ -880,6 +897,26 @@ run_cc_link_tests $lto_link_tests # by some elf tests besides shared libs tests. So, always compile them. run_cc_link_tests $lto_compile_elf_tests +# Xfail PR ld/32083 test for GCC without the fix: +# +# commit a98dd536b1017c2b814a3465206c6c01b2890998 +# Author: H.J. Lu +# Date: Wed Aug 21 07:25:25 2024 -0700 +# +# Update LDPT_REGISTER_CLAIM_FILE_HOOK_V2 linker plugin hook +# +set exec_output [run_host_cmd "$CC_FOR_TARGET" \ + "-O2 -fcommon -flto -o tmpdir/common-2 \ + tmpdir/common-2a.o tmpdir/libcommon-2.a \ + tmpdir/libcommon-2.a"] +if [string match "" $exec_output] then { + pass "PR ld/32083" +} elseif { [ regexp "lto1: fatal error: multiple prevailing defs for 'func'" $exec_output ] } { + xfail "PR ld/32083" +} else { + fail "PR ld/32083" +} + # Restrict these to ELF targets that support shared libs and PIC. if { [is_elf_format] && [check_lto_shared_available] } { run_cc_link_tests $lto_link_elf_tests