]> git.ipfire.org Git - thirdparty/binutils-gdb.git/commitdiff
gas: scfi: fix failing test on Solaris2
authorIndu Bhagat <indu.bhagat@oracle.com>
Fri, 9 Feb 2024 07:10:27 +0000 (23:10 -0800)
committerIndu Bhagat <indu.bhagat@oracle.com>
Fri, 9 Feb 2024 07:11:01 +0000 (23:11 -0800)
It has been observed that the run of scfi-unsupported-1 test with --x32
arg on a Solaris2 x86_64 system fails:

Executing on host: sh -c {../as-new  --x32 --scfi=experimental \
          <...>/scfi-unsupported-1.s 2>&1}  /dev/null dump.out (timeout = 300)
Assembler messages:
Fatal error: no compiled in support for 32bit x86_64
regexp_diff match failure
regexp "^Fatal error: SCFI is not supported for this ABI$"
line   "Fatal error: no compiled in support for 32bit x86_64"
FAIL: x86_64 scfi-unsupported-1

Fix the above by adding a check for --x32 support before running the
test.  While at it, also include a similar check for --32 support.

gas/testsuite/
* gas/scfi/x86_64/scfi-x86-64.exp: Add gas_x32_check and
gas_32_check.  Conditionalize the execution of affected
testcases.

gas/testsuite/gas/scfi/x86_64/scfi-x86-64.exp

index 9c76974fefe313a5d641a926fb175c236bd41c7b..5324af386f8a0bf96d369f668b46595cef86e4df 100644 (file)
 # along with this program; if not, write to the Free Software
 # Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA.
 
+proc gas_32_check { } {
+    global NM
+    global NMFLAGS
+
+    set status [gas_host_run "$NM $NMFLAGS --help" ""]
+    return [regexp "targets:.*i386" [lindex $status 1]];
+}
+
+proc gas_x32_check { } {
+    global NM
+    global NMFLAGS
+
+    set status [gas_host_run "$NM $NMFLAGS --help" ""]
+    return [regexp "targets:.*elf32-x86-64" [lindex $status 1]];
+}
+
 if { ![is_elf_format] } then {
     return
 }
@@ -40,8 +56,12 @@ if  { ([istarget "x86_64-*-*"] && ![istarget "x86_64-*-linux*-gnux32"]) } then {
     run_list_test "scfi-fp-diag-2" "--scfi=experimental"
     run_list_test "scfi-diag-2" "--scfi=experimental"
 
-    run_list_test "scfi-unsupported-1" "--32 --scfi=experimental"
-    run_list_test "scfi-unsupported-1" "--x32 --scfi=experimental"
+    if { [gas_32_check] } then {
+       run_list_test "scfi-unsupported-1" "--32 --scfi=experimental"
+    }
+    if { [gas_x32_check] } then {
+       run_list_test "scfi-unsupported-1" "--x32 --scfi=experimental"
+    }
     run_list_test "scfi-unsupported-insn-1" "--scfi=experimental"
     run_list_test "scfi-unsupported-2" "--scfi=experimental"
     run_list_test "scfi-unsupported-3" "--scfi=experimental"