aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorH.J. Lu <hjl.tools@gmail.com>2024-08-16 03:48:34 -0700
committerH.J. Lu <hjl.tools@gmail.com>2024-08-22 06:34:53 -0700
commiteb53cbeca8cf456b4a79f33d7a2a586a99b4b2e3 (patch)
treecd32f63bfe22145cbea3f772e6db2d3329a233cd
parent573d8bb08bfff4638405add40a6a61868af1f2a4 (diff)
downloadgdb-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.c11
-rw-r--r--ld/testsuite/ld-plugin/common-2b.c6
-rw-r--r--ld/testsuite/ld-plugin/lto.exp37
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