[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