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.
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" \
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" \
]
}
-# 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" \
}
}
+# 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