[binutils-gdb] ld: testsuite: Simplify emulation check in libgot tests

Rainer Orth ro@sourceware.org
Tue Jan 27 17:27:47 GMT 2026


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

commit 45df08bfcdaaf54d905b62df78608f052da81f1b
Author: Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
Date:   Tue Jan 27 18:26:59 2026 +0100

    ld: testsuite: Simplify emulation check in libgot tests
    
    The x86 libgot-1 tests are the only ones in all testsuites that use a
    new ld -V -m<emul under test> idiom to check whether to run the tests.
    
    Rather than open-coding the check everywhere while relying on that
    idiom, this patch introduces a new proc to directly check the ld -V
    output for the emulation in question.
    
    Tested on {x86_64,i686}-pc-linux-gnu and {amd64,i386}-pc-solaris2.11.
    
    2026-01-24  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
    
            ld:
            * testsuite/lib/ld-lib.exp (ld_supports_emul): New proc.
            * testsuite/ld-i386/binutils.exp: Use it.
            * testsuite/ld-x86-64/binutils.exp: Likewise.

Diff:
---
 ld/testsuite/ld-i386/binutils.exp   |  4 +---
 ld/testsuite/ld-x86-64/binutils.exp |  8 ++------
 ld/testsuite/lib/ld-lib.exp         | 11 +++++++++++
 3 files changed, 14 insertions(+), 9 deletions(-)

diff --git a/ld/testsuite/ld-i386/binutils.exp b/ld/testsuite/ld-i386/binutils.exp
index 40bbeacdf15..58583e39660 100644
--- a/ld/testsuite/ld-i386/binutils.exp
+++ b/ld/testsuite/ld-i386/binutils.exp
@@ -27,9 +27,7 @@ if { ![istarget "i?86-*-*"] && ![istarget "x86_64-*-*"] } {
     return
 }
 
-# Tests here need -melf_i386 support.
-set status [catch "exec $LD -V -melf_i386" got]
-if { $status == 0 } {
+if [ld_supports_emul "elf_i386"] {
     run_ld_link_tests [list \
 	[list \
 	    "Build libgot-1-i386.so" \
diff --git a/ld/testsuite/ld-x86-64/binutils.exp b/ld/testsuite/ld-x86-64/binutils.exp
index beac28faecb..cc466bdbc6d 100644
--- a/ld/testsuite/ld-x86-64/binutils.exp
+++ b/ld/testsuite/ld-x86-64/binutils.exp
@@ -27,9 +27,7 @@ if { ![istarget "x86_64-*-*"] } {
     return
 }
 
-# Tests here need -melf_x86_64 support.
-set status [catch "exec $LD -V -melf_x86_64" got]
-if { $status == 0 } {
+if [ld_supports_emul "elf_x86_64"] {
     run_ld_link_tests [list \
 	[list \
 	    "Build libgot-1-x64.so" \
@@ -46,9 +44,7 @@ if { $status == 0 } {
     ]
 }
 
-# Tests here need -melf32_x86_64 support.
-set status [catch "exec $LD -V -melf32_x86_64" got]
-if { $status == 0 } {
+if [ld_supports_emul "elf32_x86_64"] {
     run_ld_link_tests [list \
 	[list \
 	    "Build libgot-1-x32.so" \
diff --git a/ld/testsuite/lib/ld-lib.exp b/ld/testsuite/lib/ld-lib.exp
index 4b8708f789f..851cd89790e 100644
--- a/ld/testsuite/lib/ld-lib.exp
+++ b/ld/testsuite/lib/ld-lib.exp
@@ -65,6 +65,17 @@ proc default_ld_version { ld } {
     }
 }
 
+# Check if ld supports emul.
+#
+proc ld_supports_emul { emul } {
+    global ld
+
+    set ld_output [remote_exec host $ld "-V"]
+    set ld_output [lindex $ld_output 1]
+
+    return [regexp "$emul\[\n\r\]" $ld_output]
+}
+
 proc run_host_cmd { prog command } {
     global link_output
     global gcc_B_opt


More information about the Binutils-cvs mailing list