From: Rainer Orth Date: Sun, 17 Aug 2025 10:25:43 +0000 (+0200) Subject: ld: testsuite: Fix several CTF tests on 32-bit SPARC X-Git-Tag: gdb-17-branchpoint~274 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=ddc09604ad38dd325c1cf7f5d9ce37ba4c28464e;p=thirdparty%2Fbinutils-gdb.git ld: testsuite: Fix several CTF tests on 32-bit SPARC Several ld CTF tests FAIL on 32-bit SPARC, e.g. FAIL: Arrays (conflicted) The failure mode is always the same: ./tmpdir/array-char-conflicting-1.s: Assembler messages: ./tmpdir/array-char-conflicting-1.s:89: Error: Architecture mismatch on "return %i7+8". ./tmpdir/array-char-conflicting-1.s:89: (Requires v9|v9a|v9b|v9c|v9d|v9e|v9v|v9m|m8; requested architecture is sparclite.) The problem is that gcc emits v8plus code by default, and thus invokes as with -xarch=v8plus (equivalent to -Av8plus), while the testcase lacks the latter. Fixed by setting ASFLAGS to match. Tested on sparc-sun-solaris2.11, sparc-unknown-linux-gnu, sparcv9-sun-solaris2.11, and sparc64-unknown-linux-gnu. 2025-07-25 Rainer Orth ld: * testsuite/ld-ctf/ctf.exp (ASFLAGS): Append -Av8plus on sparc-*-*. --- diff --git a/ld/ChangeLog b/ld/ChangeLog index 7b03989a59d..959a44951ec 100644 --- a/ld/ChangeLog +++ b/ld/ChangeLog @@ -1,3 +1,8 @@ +2025-08-17 Rainer Orth + + * testsuite/ld-ctf/ctf.exp (ASFLAGS): Append -Av8plus on + sparc-*-*. + 2025-07-29 Rainer Orth * testsuite/ld-elfweak/elfweak.exp: Enable on *-*-solaris2* rather diff --git a/ld/testsuite/ld-ctf/ctf.exp b/ld/testsuite/ld-ctf/ctf.exp index c314f2995af..3ce5e1e9dfe 100644 --- a/ld/testsuite/ld-ctf/ctf.exp +++ b/ld/testsuite/ld-ctf/ctf.exp @@ -38,6 +38,11 @@ if {[info exists env(LC_ALL)]} { } set env(LC_ALL) "C" +set saved_ASFLAGS "$ASFLAGS" +if [istarget "sparc-*-*"] { + append ASFLAGS " -Av8plus" +} + set ctf_test_list [lsort [glob -nocomplain $srcdir/$subdir/*.d]] foreach ctf_test $ctf_test_list { @@ -50,6 +55,8 @@ foreach ctf_test $ctf_test_list { run_dump_test [file rootname $ctf_test] { { cc "-gctf -fPIC" } } } +set ASFLAGS "$saved_ASFLAGS" + if {[info exists old_lc_all]} { set env(LC_ALL) $old_lc_all } else {