[committed 10/16] MIPS/LD/testsuite: Fix MIPS16 interlinking test n64 regressions

Maciej W. Rozycki macro@orcam.me.uk
Fri Jul 28 05:07:16 GMT 2023


From: YunQiang Su <yunqiang.su@cipunited.com>

The MIPS16 interlinking test for local functions expects to be assembled 
with 32-bit addressing, otherwise causing assembly warnings:

.../ld/testsuite/ld-mips-elf/mips16-local-stubs-1.s: Assembler messages:
.../ld/testsuite/ld-mips-elf/mips16-local-stubs-1.s:16: Warning: la used to load 64-bit address; recommend using dla instead

Use the per-ABI framework then to run the test explicitly for o32 and 
n32 ABIs only, replacing the `-mips4' option from the `as' tag with 
`.module mips4' pseudo-op within the source itself so as to avoid 
assembly errors:

Assembler messages:
Error: -mips4 conflicts with the other architecture options, which imply -mips3

with n32 testing for some targets, and ultimately removing these 
regressions:

mips64-openbsd  -FAIL: MIPS16 interlinking for local functions 1
mips64el-openbsd  -FAIL: MIPS16 interlinking for local functions 1

Co-Authored-By: Maciej W. Rozycki <macro@orcam.me.uk>

	ld/
	* testsuite/ld-mips-elf/mips16-local-stubs-1.d: Remove `-mips4' 
	from the `as' tag.
	* testsuite/ld-mips-elf/mips16-local-stubs-1.s: Add `.module 
	mips4'.
	* testsuite/ld-mips-elf/mips-elf.exp: Run `mips16-local-stubs-1'
	for o32 and n32 ABIs only.
---
 ld/testsuite/ld-mips-elf/mips-elf.exp           |    3 ++-
 ld/testsuite/ld-mips-elf/mips16-local-stubs-1.d |    1 -
 ld/testsuite/ld-mips-elf/mips16-local-stubs-1.s |    2 ++
 3 files changed, 4 insertions(+), 2 deletions(-)

binutils-yunqiang-ld-test-mips16-local-stubs-1-n64.diff
Index: binutils-gdb/ld/testsuite/ld-mips-elf/mips-elf.exp
===================================================================
--- binutils-gdb.orig/ld/testsuite/ld-mips-elf/mips-elf.exp
+++ binutils-gdb/ld/testsuite/ld-mips-elf/mips-elf.exp
@@ -1047,7 +1047,8 @@ if { $has_abi(o32) } {
     run_ld_link_tests $mips16_intermix_test
 }
 
-run_dump_test "mips16-local-stubs-1"
+run_dump_test_o32 "mips16-local-stubs-1"
+run_dump_test_n32 "mips16-local-stubs-1" [list [list name (n32)]]
 
 set mips16_fp_stub_test [list \
     [list "Floating-point stub for mips16 functions" \
Index: binutils-gdb/ld/testsuite/ld-mips-elf/mips16-local-stubs-1.d
===================================================================
--- binutils-gdb.orig/ld/testsuite/ld-mips-elf/mips16-local-stubs-1.d
+++ binutils-gdb/ld/testsuite/ld-mips-elf/mips16-local-stubs-1.d
@@ -1,6 +1,5 @@
 #name: MIPS16 interlinking for local functions 1
 #source: mips16-local-stubs-1.s
-#as: -mips4
 #ld: -Ttext 0x20000000 -e caller1
 #objdump: -dr
 #...
Index: binutils-gdb/ld/testsuite/ld-mips-elf/mips16-local-stubs-1.s
===================================================================
--- binutils-gdb.orig/ld/testsuite/ld-mips-elf/mips16-local-stubs-1.s
+++ binutils-gdb/ld/testsuite/ld-mips-elf/mips16-local-stubs-1.s
@@ -1,3 +1,5 @@
+	.module	mips4
+
 	.macro	makestub,type,func,section
 	.text
 	.set	\type


More information about the Binutils mailing list