From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: by sourceware.org (Postfix, from userid 1256) id 9D4C63851409; Fri, 28 Jul 2023 05:06:32 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 9D4C63851409 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable From: Maciej W. Rozycki To: bfd-cvs@sourceware.org Subject: [binutils-gdb/binutils-2_41-branch] MIPS/LD/testsuite: Fix unaligned JALX failures with OpenBSD targets X-Act-Checkin: binutils-gdb X-Git-Author: Maciej W. Rozycki X-Git-Refname: refs/heads/binutils-2_41-branch X-Git-Oldrev: 09dc502a637c01e22e047ea67ea52ec8d4530018 X-Git-Newrev: 7f251420206edd68394f59ce694c5084ce6dee11 Message-Id: <20230728050632.9D4C63851409@sourceware.org> Date: Fri, 28 Jul 2023 05:06:32 +0000 (GMT) X-BeenThere: binutils-cvs@sourceware.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Binutils-cvs mailing list List-Unsubscribe: , List-Archive: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 28 Jul 2023 05:06:32 -0000 https://sourceware.org/git/gitweb.cgi?p=3Dbinutils-gdb.git;h=3D7f251420206e= dd68394f59ce694c5084ce6dee11 commit 7f251420206edd68394f59ce694c5084ce6dee11 Author: Maciej W. Rozycki Date: Fri Jul 28 06:00:36 2023 +0100 MIPS/LD/testsuite: Fix unaligned JALX failures with OpenBSD targets =20 There are only n64 linker emulations included with `mips64*-*-openbsd*' targets, however the unaligned JALX tests insist on running across all targets and force the n32 ABI, causing link errors with the targets concerned, e.g.: =20 ./ld-new: tmpdir/unaligned-jalx-0.o: ABI is incompatible with that of t= he selected emulation ./ld-new: failed to merge target specific data of file tmpdir/unaligned= -jalx-0.o ./ld-new: tmpdir/unaligned-insn.o: ABI is incompatible with that of the= selected emulation ./ld-new: failed to merge target specific data of file tmpdir/unaligned= -insn.o =20 Convert the tests then to use the per-ABI framework and run them for the o32 and n32 ABIs, removing these regressions: =20 mips64-openbsd -FAIL: MIPS JALX to unaligned symbol 0 mips64-openbsd -FAIL: MIPS JALX to unaligned symbol 1 mips64-openbsd -FAIL: MIPS JALX to unaligned symbol 2 mips64-openbsd -FAIL: MIPS JALX to unaligned symbol 3 mips64-openbsd -FAIL: MIPS16 JALX to unaligned symbol 0 mips64-openbsd -FAIL: MIPS16 JALX to unaligned symbol 1 mips64-openbsd -FAIL: microMIPS JALX to unaligned symbol 0 mips64-openbsd -FAIL: microMIPS JALX to unaligned symbol 1 mips64el-openbsd -FAIL: MIPS JALX to unaligned symbol 0 mips64el-openbsd -FAIL: MIPS JALX to unaligned symbol 1 mips64el-openbsd -FAIL: MIPS JALX to unaligned symbol 2 mips64el-openbsd -FAIL: MIPS JALX to unaligned symbol 3 mips64el-openbsd -FAIL: MIPS16 JALX to unaligned symbol 0 mips64el-openbsd -FAIL: MIPS16 JALX to unaligned symbol 1 mips64el-openbsd -FAIL: microMIPS JALX to unaligned symbol 0 mips64el-openbsd -FAIL: microMIPS JALX to unaligned symbol 1 =20 Similar tests for the n64 ABI can be added separately, using suitable dump patterns. =20 ld/ * testsuite/ld-mips-elf/unaligned-jalx-0.d: Remove `-32' from the `as' tag. * testsuite/ld-mips-elf/unaligned-jalx-1.d: Likewise. * testsuite/ld-mips-elf/unaligned-jalx-2.d: Likewise. * testsuite/ld-mips-elf/unaligned-jalx-3.d: Likewise. * testsuite/ld-mips-elf/unaligned-jalx-mips16-0.d: Likewise. * testsuite/ld-mips-elf/unaligned-jalx-mips16-1.d: Likewise. * testsuite/ld-mips-elf/unaligned-jalx-micromips-0.d: Likewise. * testsuite/ld-mips-elf/unaligned-jalx-micromips-1.d: Likewise. * testsuite/ld-mips-elf/mips-elf.exp: Run unaligned JALX tests with `run_dump_test_o32' and `run_dump_test_n32' rather than `run_dump_test'. =20 (cherry picked from commit 67e789ae32fadc540c10839f08ad53ff01e2d732) Diff: --- ld/testsuite/ld-mips-elf/mips-elf.exp | 24 ++++++++++++++----= ---- ld/testsuite/ld-mips-elf/unaligned-jalx-0.d | 2 +- ld/testsuite/ld-mips-elf/unaligned-jalx-1.d | 2 +- ld/testsuite/ld-mips-elf/unaligned-jalx-2.d | 2 +- ld/testsuite/ld-mips-elf/unaligned-jalx-3.d | 2 +- .../ld-mips-elf/unaligned-jalx-micromips-0.d | 2 +- .../ld-mips-elf/unaligned-jalx-micromips-1.d | 2 +- ld/testsuite/ld-mips-elf/unaligned-jalx-mips16-0.d | 2 +- ld/testsuite/ld-mips-elf/unaligned-jalx-mips16-1.d | 2 +- 9 files changed, 24 insertions(+), 16 deletions(-) diff --git a/ld/testsuite/ld-mips-elf/mips-elf.exp b/ld/testsuite/ld-mips-e= lf/mips-elf.exp index 44f9dc95c44..903f7a0a383 100644 --- a/ld/testsuite/ld-mips-elf/mips-elf.exp +++ b/ld/testsuite/ld-mips-elf/mips-elf.exp @@ -412,14 +412,22 @@ run_dump_test_n64 "bal-jalx-pic-micromips-n64" run_dump_test_n64 "bal-jalx-pic-ignore-n64" run_dump_test_n64 "bal-jalx-pic-ignore-micromips-n64" =20 -run_dump_test "unaligned-jalx-0" [list [list ld $abi_ldflags(o32)]] -run_dump_test "unaligned-jalx-1" [list [list ld $abi_ldflags(o32)]] -run_dump_test "unaligned-jalx-2" [list [list ld $abi_ldflags(o32)]] -run_dump_test "unaligned-jalx-3" [list [list ld $abi_ldflags(o32)]] -run_dump_test "unaligned-jalx-mips16-0" [list [list ld $abi_ldflags(o32)]] -run_dump_test "unaligned-jalx-mips16-1" [list [list ld $abi_ldflags(o32)]] -run_dump_test "unaligned-jalx-micromips-0" [list [list ld $abi_ldflags(o32= )]] -run_dump_test "unaligned-jalx-micromips-1" [list [list ld $abi_ldflags(o32= )]] +run_dump_test_o32 "unaligned-jalx-0" +run_dump_test_n32 "unaligned-jalx-0" [list [list name (n32)]] +run_dump_test_o32 "unaligned-jalx-1" +run_dump_test_n32 "unaligned-jalx-1" [list [list name (n32)]] +run_dump_test_o32 "unaligned-jalx-2" +run_dump_test_n32 "unaligned-jalx-2" [list [list name (n32)]] +run_dump_test_o32 "unaligned-jalx-3" +run_dump_test_n32 "unaligned-jalx-3" [list [list name (n32)]] +run_dump_test_o32 "unaligned-jalx-mips16-0" +run_dump_test_n32 "unaligned-jalx-mips16-0" [list [list name (n32)]] +run_dump_test_o32 "unaligned-jalx-mips16-1" +run_dump_test_n32 "unaligned-jalx-mips16-1" [list [list name (n32)]] +run_dump_test_o32 "unaligned-jalx-micromips-0" +run_dump_test_n32 "unaligned-jalx-micromips-0" [list [list name (n32)]] +run_dump_test_o32 "unaligned-jalx-micromips-1" +run_dump_test_n32 "unaligned-jalx-micromips-1" [list [list name (n32)]] =20 run_dump_test_n32 "unaligned-jalx-addend-0" run_dump_test_n32 "unaligned-jalx-addend-1" diff --git a/ld/testsuite/ld-mips-elf/unaligned-jalx-0.d b/ld/testsuite/ld-= mips-elf/unaligned-jalx-0.d index a37e5a914f7..ad08694c95d 100644 --- a/ld/testsuite/ld-mips-elf/unaligned-jalx-0.d +++ b/ld/testsuite/ld-mips-elf/unaligned-jalx-0.d @@ -1,7 +1,7 @@ #name: MIPS JALX to unaligned symbol 0 #source: unaligned-jalx-0.s #source: unaligned-insn.s -mips16 -#as: -EB -32 +#as: -EB #ld: -EB -Ttext 0x1c000000 -e 0x1c000000 #objdump: -dr --prefix-addresses --show-raw-insn =20 diff --git a/ld/testsuite/ld-mips-elf/unaligned-jalx-1.d b/ld/testsuite/ld-= mips-elf/unaligned-jalx-1.d index a6cc2ed01f2..260124a0c06 100644 --- a/ld/testsuite/ld-mips-elf/unaligned-jalx-1.d +++ b/ld/testsuite/ld-mips-elf/unaligned-jalx-1.d @@ -1,7 +1,7 @@ #name: MIPS JALX to unaligned symbol 1 #source: unaligned-jalx-1.s #source: unaligned-insn.s -mips16 -#as: -EB -32 +#as: -EB #ld: -EB -Ttext 0x1c000000 -e 0x1c000000 #error: \A[^\n]*: in function `foo':\n #error: \(\.text\+0x[0-9a-f]+\): cannot convert a jump to JALX for a non= -word-aligned address\Z diff --git a/ld/testsuite/ld-mips-elf/unaligned-jalx-2.d b/ld/testsuite/ld-= mips-elf/unaligned-jalx-2.d index 718c53d6c9f..f4552c34307 100644 --- a/ld/testsuite/ld-mips-elf/unaligned-jalx-2.d +++ b/ld/testsuite/ld-mips-elf/unaligned-jalx-2.d @@ -1,7 +1,7 @@ #name: MIPS JALX to unaligned symbol 2 #source: unaligned-jalx-2.s #source: unaligned-insn.s -mips16 -#as: -EB -32 +#as: -EB #ld: -EB -Ttext 0x1c000000 -e 0x1c000000 #objdump: -dr --prefix-addresses --show-raw-insn #dump: unaligned-jalx-0.d diff --git a/ld/testsuite/ld-mips-elf/unaligned-jalx-3.d b/ld/testsuite/ld-= mips-elf/unaligned-jalx-3.d index 36327f8c452..7cdcc8e6228 100644 --- a/ld/testsuite/ld-mips-elf/unaligned-jalx-3.d +++ b/ld/testsuite/ld-mips-elf/unaligned-jalx-3.d @@ -1,7 +1,7 @@ #name: MIPS JALX to unaligned symbol 3 #source: unaligned-jalx-3.s #source: unaligned-insn.s -mips16 -#as: -EB -32 +#as: -EB #ld: -EB -Ttext 0x1c000000 -e 0x1c000000 #error: \A[^\n]*: in function `foo':\n #error: \(\.text\+0x0\): cannot convert a branch to JALX for a non-word-= aligned address\Z diff --git a/ld/testsuite/ld-mips-elf/unaligned-jalx-micromips-0.d b/ld/tes= tsuite/ld-mips-elf/unaligned-jalx-micromips-0.d index 2622103bd7e..d76b53a5a21 100644 --- a/ld/testsuite/ld-mips-elf/unaligned-jalx-micromips-0.d +++ b/ld/testsuite/ld-mips-elf/unaligned-jalx-micromips-0.d @@ -1,7 +1,7 @@ #name: microMIPS JALX to unaligned symbol 0 #source: unaligned-jalx-0.s -mmicromips #source: unaligned-insn.s -#as: -EB -32 +#as: -EB #ld: -EB -Ttext 0x1c000000 -e 0x1c000000 #objdump: -dr --prefix-addresses --show-raw-insn =20 diff --git a/ld/testsuite/ld-mips-elf/unaligned-jalx-micromips-1.d b/ld/tes= tsuite/ld-mips-elf/unaligned-jalx-micromips-1.d index c38b2d5266b..f40a6713dd1 100644 --- a/ld/testsuite/ld-mips-elf/unaligned-jalx-micromips-1.d +++ b/ld/testsuite/ld-mips-elf/unaligned-jalx-micromips-1.d @@ -1,7 +1,7 @@ #name: microMIPS JALX to unaligned symbol 1 #source: unaligned-jalx-1.s -mmicromips #source: unaligned-insn.s -#as: -EB -32 +#as: -EB #ld: -EB -Ttext 0x1c000000 -e 0x1c000000 #error: \A[^\n]*: in function `foo':\n #error: \(\.text\+0x[0-9a-f]+\): cannot convert a jump to JALX for a non= -word-aligned address\Z diff --git a/ld/testsuite/ld-mips-elf/unaligned-jalx-mips16-0.d b/ld/testsu= ite/ld-mips-elf/unaligned-jalx-mips16-0.d index 176680d64c7..c560fe4c18b 100644 --- a/ld/testsuite/ld-mips-elf/unaligned-jalx-mips16-0.d +++ b/ld/testsuite/ld-mips-elf/unaligned-jalx-mips16-0.d @@ -1,7 +1,7 @@ #name: MIPS16 JALX to unaligned symbol 0 #source: unaligned-jalx-0.s -mips16 #source: unaligned-insn.s -#as: -EB -32 +#as: -EB #ld: -EB -Ttext 0x1c000000 -e 0x1c000000 #objdump: -dr --prefix-addresses --show-raw-insn =20 diff --git a/ld/testsuite/ld-mips-elf/unaligned-jalx-mips16-1.d b/ld/testsu= ite/ld-mips-elf/unaligned-jalx-mips16-1.d index aacf08925c3..b810f01de29 100644 --- a/ld/testsuite/ld-mips-elf/unaligned-jalx-mips16-1.d +++ b/ld/testsuite/ld-mips-elf/unaligned-jalx-mips16-1.d @@ -1,7 +1,7 @@ #name: MIPS16 JALX to unaligned symbol 1 #source: unaligned-jalx-1.s -mips16 #source: unaligned-insn.s -#as: -EB -32 +#as: -EB #ld: -EB -Ttext 0x1c000000 -e 0x1c000000 #error: \A[^\n]*: in function `foo':\n #error: \(\.text\+0x[0-9a-f]+\): cannot convert a jump to JALX for a non= -word-aligned address\Z