[binutils-gdb] MIPS/LD/testsuite: Fix mips16-hilo IRIX 6 emulation failures

Maciej W. Rozycki macro@sourceware.org
Sun Jul 6 18:24:40 GMT 2025


https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;h=51309ac47b9fe26545c39a8e8844af3c4d35b036

commit 51309ac47b9fe26545c39a8e8844af3c4d35b036
Author: Maciej W. Rozycki <macro@orcam.me.uk>
Date:   Sun Jul 6 19:22:49 2025 +0100

    MIPS/LD/testsuite: Fix mips16-hilo IRIX 6 emulation failures
    
    IRIX 6 emulations place external small common symbols in the regular
    common section instead of the small common section.  With mips16-hilo
    test this leads to a different symbol assignment to memory locations
    between o32 and n32 ABIs, as follows:
    
    --- o32.map
    +++ n32.map
    @@ -46,23 +46,22 @@
      *(.sdata)
                     0x00765430                        . = 0x765430
    
    -.bss            0x00765430      0x7d8
    +.bss            0x00765430      0x7d9
      *(.bss)
      .bss           0x00765430      0x3f0 tmpdir/mips16-hilo.o
      .bss           0x00765820        0x0 tmpdir/mips16-hilo1.o
      *(COMMON)
    - COMMON         0x00765820      0x3e8 tmpdir/mips16-hilo.o
    + COMMON         0x00765820      0x3e9 tmpdir/mips16-hilo.o
                     0x00765820                big_external_common
    +                0x00765c08                small_external_common
    
    -.sbss           0x00765c08        0x2
    +.sbss           0x00765c09        0x1
      *(.sbss)
    - .sbss          0x00765c08        0x1 tmpdir/mips16-hilo.o
    + .sbss          0x00765c09        0x1 tmpdir/mips16-hilo.o
      *(.scommon)
    - .scommon       0x00765c09        0x1 tmpdir/mips16-hilo.o
    -                0x00765c09                small_external_common
    
     /DISCARD/
      *(*)
     LOAD tmpdir/mips16-hilo.o
     LOAD tmpdir/mips16-hilo1.o
    -OUTPUT(tmpdir/dump elf32-bigmips)
    +OUTPUT(tmpdir/dump elf32-nbigmips)
    
    which in turn causes a testsuite regression.  Since the specific mapping
    of symbols does not matter for the scope of the test, reorder the small
    common section ahead of SBSS, so that the `small_external_common' symbol
    ends up in the same place regardless of whether via the regular common
    section or the small common section.  Adjust embedded addresses in the
    disassembly expected accordingly, removing the regression concerned:
    
    mips-sgi-irix6  -FAIL: R_MIPS16_HI16 and R_MIPS16_LO16 relocs n32
    mips64el-ps2-elf  -FAIL: R_MIPS16_HI16 and R_MIPS16_LO16 relocs n32

Diff:
---
 ld/testsuite/ld-mips-elf/mips16-hilo.d  | 48 ++++++++++++++++-----------------
 ld/testsuite/ld-mips-elf/mips16-hilo.ld |  2 +-
 2 files changed, 25 insertions(+), 25 deletions(-)

diff --git a/ld/testsuite/ld-mips-elf/mips16-hilo.d b/ld/testsuite/ld-mips-elf/mips16-hilo.d
index ce5748041de..6871f8a3dca 100644
--- a/ld/testsuite/ld-mips-elf/mips16-hilo.d
+++ b/ld/testsuite/ld-mips-elf/mips16-hilo.d
@@ -30,13 +30,13 @@ Disassembly of section .text:
 0+500040 <[^>]*> f02b 4c00 	addiu	a0,22560
 0+500044 <[^>]*> f060 6c16 	li	a0,118
 0+500048 <[^>]*> f400 3480 	sll	a0,16
-0+50004c <[^>]*> f40b 4c09 	addiu	a0,23561
+0+50004c <[^>]*> f40b 4c08 	addiu	a0,23560
 0+500050 <[^>]*> f060 6c16 	li	a0,118
 0+500054 <[^>]*> f400 3480 	sll	a0,16
 0+500058 <[^>]*> f42a 4c10 	addiu	a0,21552
 0+50005c <[^>]*> f060 6c16 	li	a0,118
 0+500060 <[^>]*> f400 3480 	sll	a0,16
-0+500064 <[^>]*> f40b 4c08 	addiu	a0,23560
+0+500064 <[^>]*> f40b 4c09 	addiu	a0,23561
 0+500068 <[^>]*> 6c00      	li	a0,0
 0+50006a <[^>]*> f400 3480 	sll	a0,16
 0+50006e <[^>]*> 4c01      	addiu	a0,1
@@ -57,13 +57,13 @@ Disassembly of section .text:
 0+5000a8 <[^>]*> f02b 4c01 	addiu	a0,22561
 0+5000ac <[^>]*> f060 6c16 	li	a0,118
 0+5000b0 <[^>]*> f400 3480 	sll	a0,16
-0+5000b4 <[^>]*> f40b 4c0a 	addiu	a0,23562
+0+5000b4 <[^>]*> f40b 4c09 	addiu	a0,23561
 0+5000b8 <[^>]*> f060 6c16 	li	a0,118
 0+5000bc <[^>]*> f400 3480 	sll	a0,16
 0+5000c0 <[^>]*> f42a 4c11 	addiu	a0,21553
 0+5000c4 <[^>]*> f060 6c16 	li	a0,118
 0+5000c8 <[^>]*> f400 3480 	sll	a0,16
-0+5000cc <[^>]*> f40b 4c09 	addiu	a0,23561
+0+5000cc <[^>]*> f40b 4c0a 	addiu	a0,23562
 0+5000d0 <[^>]*> 6c01      	li	a0,1
 0+5000d2 <[^>]*> f400 3480 	sll	a0,16
 0+5000d6 <[^>]*> f010 4c00 	addiu	a0,-32768
@@ -84,13 +84,13 @@ Disassembly of section .text:
 0+500112 <[^>]*> f03b 4c00 	addiu	a0,-10208
 0+500116 <[^>]*> f060 6c17 	li	a0,119
 0+50011a <[^>]*> f400 3480 	sll	a0,16
-0+50011e <[^>]*> f41b 4c09 	addiu	a0,-9207
+0+50011e <[^>]*> f41b 4c08 	addiu	a0,-9208
 0+500122 <[^>]*> f060 6c17 	li	a0,119
 0+500126 <[^>]*> f400 3480 	sll	a0,16
 0+50012a <[^>]*> f43a 4c10 	addiu	a0,-11216
 0+50012e <[^>]*> f060 6c17 	li	a0,119
 0+500132 <[^>]*> f400 3480 	sll	a0,16
-0+500136 <[^>]*> f41b 4c08 	addiu	a0,-9208
+0+500136 <[^>]*> f41b 4c09 	addiu	a0,-9207
 0+50013a <[^>]*> 6c00      	li	a0,0
 0+50013c <[^>]*> f400 3480 	sll	a0,16
 0+500140 <[^>]*> f010 4c00 	addiu	a0,-32768
@@ -111,13 +111,13 @@ Disassembly of section .text:
 0+50017c <[^>]*> f03b 4c00 	addiu	a0,-10208
 0+500180 <[^>]*> f060 6c16 	li	a0,118
 0+500184 <[^>]*> f400 3480 	sll	a0,16
-0+500188 <[^>]*> f41b 4c09 	addiu	a0,-9207
+0+500188 <[^>]*> f41b 4c08 	addiu	a0,-9208
 0+50018c <[^>]*> f060 6c16 	li	a0,118
 0+500190 <[^>]*> f400 3480 	sll	a0,16
 0+500194 <[^>]*> f43a 4c10 	addiu	a0,-11216
 0+500198 <[^>]*> f060 6c16 	li	a0,118
 0+50019c <[^>]*> f400 3480 	sll	a0,16
-0+5001a0 <[^>]*> f41b 4c08 	addiu	a0,-9208
+0+5001a0 <[^>]*> f41b 4c09 	addiu	a0,-9207
 0+5001a4 <[^>]*> 6c01      	li	a0,1
 0+5001a6 <[^>]*> f400 3480 	sll	a0,16
 0+5001aa <[^>]*> 4c00      	addiu	a0,0
@@ -138,13 +138,13 @@ Disassembly of section .text:
 0+5001e4 <[^>]*> f02b 4c00 	addiu	a0,22560
 0+5001e8 <[^>]*> f060 6c17 	li	a0,119
 0+5001ec <[^>]*> f400 3480 	sll	a0,16
-0+5001f0 <[^>]*> f40b 4c09 	addiu	a0,23561
+0+5001f0 <[^>]*> f40b 4c08 	addiu	a0,23560
 0+5001f4 <[^>]*> f060 6c17 	li	a0,119
 0+5001f8 <[^>]*> f400 3480 	sll	a0,16
 0+5001fc <[^>]*> f42a 4c10 	addiu	a0,21552
 0+500200 <[^>]*> f060 6c17 	li	a0,119
 0+500204 <[^>]*> f400 3480 	sll	a0,16
-0+500208 <[^>]*> f40b 4c08 	addiu	a0,23560
+0+500208 <[^>]*> f40b 4c09 	addiu	a0,23561
 0+50020c <[^>]*> 6c02      	li	a0,2
 0+50020e <[^>]*> f400 3480 	sll	a0,16
 0+500212 <[^>]*> f5b4 4c05 	addiu	a0,-23131
@@ -165,13 +165,13 @@ Disassembly of section .text:
 0+50024e <[^>]*> f5df 4c05 	addiu	a0,-571
 0+500252 <[^>]*> f060 6c18 	li	a0,120
 0+500256 <[^>]*> f400 3480 	sll	a0,16
-0+50025a <[^>]*> f1a0 4c0e 	addiu	a0,430
+0+50025a <[^>]*> f1a0 4c0d 	addiu	a0,429
 0+50025e <[^>]*> f060 6c18 	li	a0,120
 0+500262 <[^>]*> f400 3480 	sll	a0,16
 0+500266 <[^>]*> f1df 4c15 	addiu	a0,-1579
 0+50026a <[^>]*> f060 6c18 	li	a0,120
 0+50026e <[^>]*> f400 3480 	sll	a0,16
-0+500272 <[^>]*> f1a0 4c0d 	addiu	a0,429
+0+500272 <[^>]*> f1a0 4c0e 	addiu	a0,430
 0+500276 <[^>]*> 6d00      	li	a1,0
 0+500278 <[^>]*> f400 35a0 	sll	a1,16
 0+50027c <[^>]*> 9d80      	lw	a0,0\(a1\)
@@ -192,13 +192,13 @@ Disassembly of section .text:
 0+5002b6 <[^>]*> f02b 9d80 	lw	a0,22560\(a1\)
 0+5002ba <[^>]*> f060 6d16 	li	a1,118
 0+5002be <[^>]*> f400 35a0 	sll	a1,16
-0+5002c2 <[^>]*> f40b 9d89 	lw	a0,23561\(a1\)
+0+5002c2 <[^>]*> f40b 9d88 	lw	a0,23560\(a1\)
 0+5002c6 <[^>]*> f060 6d16 	li	a1,118
 0+5002ca <[^>]*> f400 35a0 	sll	a1,16
 0+5002ce <[^>]*> f42a 9d90 	lw	a0,21552\(a1\)
 0+5002d2 <[^>]*> f060 6d16 	li	a1,118
 0+5002d6 <[^>]*> f400 35a0 	sll	a1,16
-0+5002da <[^>]*> f40b 9d88 	lw	a0,23560\(a1\)
+0+5002da <[^>]*> f40b 9d89 	lw	a0,23561\(a1\)
 0+5002de <[^>]*> 6d00      	li	a1,0
 0+5002e0 <[^>]*> f400 35a0 	sll	a1,16
 0+5002e4 <[^>]*> f000 9d81 	lw	a0,1\(a1\)
@@ -219,13 +219,13 @@ Disassembly of section .text:
 0+500320 <[^>]*> f02b 9d81 	lw	a0,22561\(a1\)
 0+500324 <[^>]*> f060 6d16 	li	a1,118
 0+500328 <[^>]*> f400 35a0 	sll	a1,16
-0+50032c <[^>]*> f40b 9d8a 	lw	a0,23562\(a1\)
+0+50032c <[^>]*> f40b 9d89 	lw	a0,23561\(a1\)
 0+500330 <[^>]*> f060 6d16 	li	a1,118
 0+500334 <[^>]*> f400 35a0 	sll	a1,16
 0+500338 <[^>]*> f42a 9d91 	lw	a0,21553\(a1\)
 0+50033c <[^>]*> f060 6d16 	li	a1,118
 0+500340 <[^>]*> f400 35a0 	sll	a1,16
-0+500344 <[^>]*> f40b 9d89 	lw	a0,23561\(a1\)
+0+500344 <[^>]*> f40b 9d8a 	lw	a0,23562\(a1\)
 0+500348 <[^>]*> 6d01      	li	a1,1
 0+50034a <[^>]*> f400 35a0 	sll	a1,16
 0+50034e <[^>]*> f010 9d80 	lw	a0,-32768\(a1\)
@@ -246,13 +246,13 @@ Disassembly of section .text:
 0+50038a <[^>]*> f03b 9d80 	lw	a0,-10208\(a1\)
 0+50038e <[^>]*> f060 6d17 	li	a1,119
 0+500392 <[^>]*> f400 35a0 	sll	a1,16
-0+500396 <[^>]*> f41b 9d89 	lw	a0,-9207\(a1\)
+0+500396 <[^>]*> f41b 9d88 	lw	a0,-9208\(a1\)
 0+50039a <[^>]*> f060 6d17 	li	a1,119
 0+50039e <[^>]*> f400 35a0 	sll	a1,16
 0+5003a2 <[^>]*> f43a 9d90 	lw	a0,-11216\(a1\)
 0+5003a6 <[^>]*> f060 6d17 	li	a1,119
 0+5003aa <[^>]*> f400 35a0 	sll	a1,16
-0+5003ae <[^>]*> f41b 9d88 	lw	a0,-9208\(a1\)
+0+5003ae <[^>]*> f41b 9d89 	lw	a0,-9207\(a1\)
 0+5003b2 <[^>]*> 6d00      	li	a1,0
 0+5003b4 <[^>]*> f400 35a0 	sll	a1,16
 0+5003b8 <[^>]*> f010 9d80 	lw	a0,-32768\(a1\)
@@ -273,13 +273,13 @@ Disassembly of section .text:
 0+5003f4 <[^>]*> f03b 9d80 	lw	a0,-10208\(a1\)
 0+5003f8 <[^>]*> f060 6d16 	li	a1,118
 0+5003fc <[^>]*> f400 35a0 	sll	a1,16
-0+500400 <[^>]*> f41b 9d89 	lw	a0,-9207\(a1\)
+0+500400 <[^>]*> f41b 9d88 	lw	a0,-9208\(a1\)
 0+500404 <[^>]*> f060 6d16 	li	a1,118
 0+500408 <[^>]*> f400 35a0 	sll	a1,16
 0+50040c <[^>]*> f43a 9d90 	lw	a0,-11216\(a1\)
 0+500410 <[^>]*> f060 6d16 	li	a1,118
 0+500414 <[^>]*> f400 35a0 	sll	a1,16
-0+500418 <[^>]*> f41b 9d88 	lw	a0,-9208\(a1\)
+0+500418 <[^>]*> f41b 9d89 	lw	a0,-9207\(a1\)
 0+50041c <[^>]*> 6d01      	li	a1,1
 0+50041e <[^>]*> f400 35a0 	sll	a1,16
 0+500422 <[^>]*> 9d80      	lw	a0,0\(a1\)
@@ -300,13 +300,13 @@ Disassembly of section .text:
 0+50045c <[^>]*> f02b 9d80 	lw	a0,22560\(a1\)
 0+500460 <[^>]*> f060 6d17 	li	a1,119
 0+500464 <[^>]*> f400 35a0 	sll	a1,16
-0+500468 <[^>]*> f40b 9d89 	lw	a0,23561\(a1\)
+0+500468 <[^>]*> f40b 9d88 	lw	a0,23560\(a1\)
 0+50046c <[^>]*> f060 6d17 	li	a1,119
 0+500470 <[^>]*> f400 35a0 	sll	a1,16
 0+500474 <[^>]*> f42a 9d90 	lw	a0,21552\(a1\)
 0+500478 <[^>]*> f060 6d17 	li	a1,119
 0+50047c <[^>]*> f400 35a0 	sll	a1,16
-0+500480 <[^>]*> f40b 9d88 	lw	a0,23560\(a1\)
+0+500480 <[^>]*> f40b 9d89 	lw	a0,23561\(a1\)
 0+500484 <[^>]*> 6d02      	li	a1,2
 0+500486 <[^>]*> f400 35a0 	sll	a1,16
 0+50048a <[^>]*> f5b4 9d85 	lw	a0,-23131\(a1\)
@@ -327,12 +327,12 @@ Disassembly of section .text:
 0+5004c6 <[^>]*> f5df 9d85 	lw	a0,-571\(a1\)
 0+5004ca <[^>]*> f060 6d18 	li	a1,120
 0+5004ce <[^>]*> f400 35a0 	sll	a1,16
-0+5004d2 <[^>]*> f1a0 9d8e 	lw	a0,430\(a1\)
+0+5004d2 <[^>]*> f1a0 9d8d 	lw	a0,429\(a1\)
 0+5004d6 <[^>]*> f060 6d18 	li	a1,120
 0+5004da <[^>]*> f400 35a0 	sll	a1,16
 0+5004de <[^>]*> f1df 9d95 	lw	a0,-1579\(a1\)
 0+5004e2 <[^>]*> f060 6d18 	li	a1,120
 0+5004e6 <[^>]*> f400 35a0 	sll	a1,16
-0+5004ea <[^>]*> f1a0 9d8d 	lw	a0,429\(a1\)
+0+5004ea <[^>]*> f1a0 9d8e 	lw	a0,430\(a1\)
 0+5004ee <[^>]*> 6500      	nop
 #pass
diff --git a/ld/testsuite/ld-mips-elf/mips16-hilo.ld b/ld/testsuite/ld-mips-elf/mips16-hilo.ld
index 1b543523234..5ebb39d1cd4 100644
--- a/ld/testsuite/ld-mips-elf/mips16-hilo.ld
+++ b/ld/testsuite/ld-mips-elf/mips16-hilo.ld
@@ -7,6 +7,6 @@ SECTIONS
   .sdata : { *(.sdata) }
   . = 0x0765430;
   .bss : { *(.bss) *(COMMON) }
-  .sbss : { *(.sbss) *(.scommon) }
+  .sbss : { *(.scommon) *(.sbss) }
   /DISCARD/ : { *(*) }
 }


More information about the Binutils-cvs mailing list