[binutils-gdb/binutils-2_43-branch] lto: Add a test for PR ld/32083
H.J. Lu
hjl@sourceware.org
Thu Aug 22 13:56:02 GMT 2024
https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;h=2d37b890e569330a29181ec3bd34b5cc1c354cbc
commit 2d37b890e569330a29181ec3bd34b5cc1c354cbc
Author: H.J. Lu <hjl.tools@gmail.com>
Date: Fri Aug 16 03:48:34 2024 -0700
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>
(cherry picked from commit eb53cbeca8cf456b4a79f33d7a2a586a99b4b2e3)
Diff:
---
ld/testsuite/ld-plugin/common-2a.c | 11 +++++++++++
ld/testsuite/ld-plugin/common-2b.c | 6 ++++++
ld/testsuite/ld-plugin/lto.exp | 37 +++++++++++++++++++++++++++++++++++++
3 files changed, 54 insertions(+)
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 <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 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 0c3c9d94ec0..602d94ed7b3 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
More information about the Binutils-cvs
mailing list