[binutils-gdb] ld: Run PR ld/34570 tests only if supported

H.J. Lu hjl@sourceware.org
Fri Aug 28 08:29:30 GMT 2026


https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;h=c562e4ffa94c50ee974200a7457e435cec411a43

commit c562e4ffa94c50ee974200a7457e435cec411a43
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Fri Aug 28 16:02:11 2026 +0800

    ld: Run PR ld/34570 tests only if supported
    
    Since Clang doesn't support all GCC options, PR ld/34570 tests fail to
    compile if GCC specific options are used to build binutils.  Add
    llvm_lto_tests to lto.exp and don't run PR ld/34570 tests if Clang fails
    to compile them.
    
            PR ld/34576
            PR ld/34570
            * testsuite/ld-plugin/lto.exp (llvm_lto_tests): New.
            Use it.
    
    Signed-off-by: H.J. Lu <hjl.tools@gmail.com>

Diff:
---
 ld/testsuite/ld-plugin/lto.exp | 30 ++++++++++++++++++++++++------
 1 file changed, 24 insertions(+), 6 deletions(-)

diff --git a/ld/testsuite/ld-plugin/lto.exp b/ld/testsuite/ld-plugin/lto.exp
index 00578a63791..41593efc253 100644
--- a/ld/testsuite/ld-plugin/lto.exp
+++ b/ld/testsuite/ld-plugin/lto.exp
@@ -1452,12 +1452,20 @@ if { [check_lto_fat_available] } {
     }
 }
 
-# Skip native x32 and i?86 targets since system LLVMgold.so may not be
-# compatible with native x32 and i?86 targets binutils.
-if { ![istarget "x86_64-*-linux*-gnux32"]
-     && ![istarget "i?86-*-*"]
-     && [info exists CLANG_FOR_TARGET]
-     && ![string match "" $llvm_plug_opt] } {
+proc llvm_lto_tests {} {
+    global CC_FOR_TARGET
+    global CLANG_FOR_TARGET
+    global llvm_plug_opt
+
+    # Skip native x32 and i?86 targets since system LLVMgold.so may not
+    # be compatible with native x32 and i?86 targets binutils.
+    if {[istarget "x86_64-*-linux*-gnux32"]
+	|| [istarget "i?86-*-*"]
+	|| ![info exists CLANG_FOR_TARGET]
+	|| [string match "" $llvm_plug_opt] } {
+	return
+    }
+
     set CC_FOR_TARGET_saved "$CC_FOR_TARGET"
     set CC_FOR_TARGET "$CLANG_FOR_TARGET"
     run_cc_link_tests [list \
@@ -1473,6 +1481,14 @@ if { ![istarget "x86_64-*-linux*-gnux32"]
 	    "-flto" \
 	    {pr34572b.c} \
 	] \
+    ]
+
+   if {![file exists tmpdir/pr34572a.o]
+       || ![file exists tmpdir/pr34572b.o]} {
+	return
+    }
+
+    run_cc_link_tests [list \
 	[list \
 	    "Build pr34572a.exe" \
 	    "-flto -Wl,--start-lib tmpdir/pr34572a.o -Wl,--end-lib" \
@@ -1509,4 +1525,6 @@ if { ![istarget "x86_64-*-linux*-gnux32"]
     set CC_FOR_TARGET "$CC_FOR_TARGET_saved"
 }
 
+llvm_lto_tests
+
 restore_notify


More information about the Binutils-cvs mailing list