diff options
author | H.J. Lu <hjl.tools@gmail.com> | 2024-08-16 03:48:34 -0700 |
---|---|---|
committer | H.J. Lu <hjl.tools@gmail.com> | 2024-08-22 06:34:53 -0700 |
commit | eb53cbeca8cf456b4a79f33d7a2a586a99b4b2e3 (patch) | |
tree | cd32f63bfe22145cbea3f772e6db2d3329a233cd | |
parent | 573d8bb08bfff4638405add40a6a61868af1f2a4 (diff) | |
download | gdb-eb53cbeca8cf456b4a79f33d7a2a586a99b4b2e3.zip gdb-eb53cbeca8cf456b4a79f33d7a2a586a99b4b2e3.tar.gz gdb-eb53cbeca8cf456b4a79f33d7a2a586a99b4b2e3.tar.bz2 |
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 <hjl.tools@gmail.com>
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 <hjl.tools@gmail.com>
-rw-r--r-- | ld/testsuite/ld-plugin/common-2a.c | 11 | ||||
-rw-r--r-- | ld/testsuite/ld-plugin/common-2b.c | 6 | ||||
-rw-r--r-- | ld/testsuite/ld-plugin/lto.exp | 37 |
3 files changed, 54 insertions, 0 deletions
diff --git a/ld/testsuite/ld-plugin/common-2a.c b/ld/testsuite/ld-plugin/common-2a.c new file mode 100644 index 0000000..fccfca7 --- /dev/null +++ b/ld/testsuite/ld-plugin/common-2a.c @@ -0,0 +1,11 @@ +#include <stdio.h> + +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 0000000..c014c67 --- /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 bbd6840..6424ba4 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 <hjl.tools@gmail.com> +# 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 |