From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: by sourceware.org (Postfix, from userid 1256) id 79EBE3854C5F; Fri, 28 Jul 2023 05:06:22 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 79EBE3854C5F 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: Include n64 `.interp' with INITIAL_READONLY_SECTIONS X-Act-Checkin: binutils-gdb X-Git-Author: YunQiang Su X-Git-Refname: refs/heads/binutils-2_41-branch X-Git-Oldrev: 61dfb2991ffb5da6a68d8241d5f74fecdde18c19 X-Git-Newrev: 516244bb3ebdea474f9af57be6df8595e5c8e153 Message-Id: <20230728050622.79EBE3854C5F@sourceware.org> Date: Fri, 28 Jul 2023 05:06:22 +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:22 -0000 https://sourceware.org/git/gitweb.cgi?p=3Dbinutils-gdb.git;h=3D516244bb3ebd= ea474f9af57be6df8595e5c8e153 commit 516244bb3ebdea474f9af57be6df8595e5c8e153 Author: YunQiang Su Date: Fri Jul 28 06:00:36 2023 +0100 MIPS/LD: Include n64 `.interp' with INITIAL_READONLY_SECTIONS =20 In ld/emulparams/elf64bmip-defs.sh there is no explicit handling of the `.interp' section, which causes it to be positioned in output at an odd place. =20 Let's include it with INITIAL_READONLY_SECTIONS, just like o32/n32 do, fixing a regression from commit 5a8e7be242f3 ("INITIAL_READONLY_SECTIONS in elf.sc"), where the handling of n64 was missed due to an unfortunate sequence of events where ld/emulparams/elf64bmip-defs.sh was only added with commit 94bb04b3c611 ("Use .reginfo rather than .MIPS.options in n32 linker scripts") the day before. =20 Add test cases covering section ordering across the three ABIs. This change also fixes ld/pr23658-2: =20 FAIL: Build pr23658-2 =20 Co-Authored-By: Maciej W. Rozycki =20 ld/ChangeLog: * emulparams/elf64bmip-defs.sh: Include `.interp' with INITIAL_READONLY_SECTIONS. * testsuite/ld-mips-elf/pie-n64.d: Adjust addresses. * testsuite/ld-mips-elf/sections-1-o32.rd: New test. * testsuite/ld-mips-elf/sections-1-o32t.rd: New test. * testsuite/ld-mips-elf/sections-1-n32.rd: New test. * testsuite/ld-mips-elf/sections-1-n32t.rd: New test. * testsuite/ld-mips-elf/sections-1-n32p.rd: New test. * testsuite/ld-mips-elf/sections-1-n64.rd: New test. * testsuite/ld-mips-elf/sections-1-n64t.rd: New test. * testsuite/ld-mips-elf/sections-2-o32.rd: New test. * testsuite/ld-mips-elf/sections-2-o32t.rd: New test. * testsuite/ld-mips-elf/sections-2-n32.rd: New test. * testsuite/ld-mips-elf/sections-2-n32t.rd: New test. * testsuite/ld-mips-elf/sections-2-n32p.rd: New test. * testsuite/ld-mips-elf/sections-2-n64.rd: New test. * testsuite/ld-mips-elf/sections-2-n64t.rd: New test. * testsuite/ld-mips-elf/sections.s: New test source. * testsuite/ld-mips-elf/mips-elf.exp: Run the new tests. =20 (cherry picked from commit f625926792da741ab196ef71c16e481331965b6f) Diff: --- ld/emulparams/elf64bmip-defs.sh | 6 +++- ld/testsuite/ld-mips-elf/mips-elf.exp | 21 ++++++++++++++ ld/testsuite/ld-mips-elf/pie-n64.d | 12 ++++---- ld/testsuite/ld-mips-elf/sections-1-n32.rd | 36 +++++++++++++++++++++++ ld/testsuite/ld-mips-elf/sections-1-n32p.rd | 36 +++++++++++++++++++++++ ld/testsuite/ld-mips-elf/sections-1-n32t.rd | 36 +++++++++++++++++++++++ ld/testsuite/ld-mips-elf/sections-1-n64.rd | 36 +++++++++++++++++++++++ ld/testsuite/ld-mips-elf/sections-1-n64t.rd | 36 +++++++++++++++++++++++ ld/testsuite/ld-mips-elf/sections-1-o32.rd | 36 +++++++++++++++++++++++ ld/testsuite/ld-mips-elf/sections-1-o32t.rd | 36 +++++++++++++++++++++++ ld/testsuite/ld-mips-elf/sections-2-n32.rd | 33 ++++++++++++++++++++++ ld/testsuite/ld-mips-elf/sections-2-n32p.rd | 33 ++++++++++++++++++++++ ld/testsuite/ld-mips-elf/sections-2-n32t.rd | 33 ++++++++++++++++++++++ ld/testsuite/ld-mips-elf/sections-2-n64.rd | 33 ++++++++++++++++++++++ ld/testsuite/ld-mips-elf/sections-2-n64t.rd | 33 ++++++++++++++++++++++ ld/testsuite/ld-mips-elf/sections-2-o32.rd | 33 ++++++++++++++++++++++ ld/testsuite/ld-mips-elf/sections-2-o32t.rd | 33 ++++++++++++++++++++++ ld/testsuite/ld-mips-elf/sections.s | 44 +++++++++++++++++++++++++= ++++ 18 files changed, 559 insertions(+), 7 deletions(-) diff --git a/ld/emulparams/elf64bmip-defs.sh b/ld/emulparams/elf64bmip-defs= .sh index 4165f51e9e5..19d782d8e7a 100644 --- a/ld/emulparams/elf64bmip-defs.sh +++ b/ld/emulparams/elf64bmip-defs.sh @@ -1,6 +1,10 @@ source_sh ${srcdir}/emulparams/elf32bmipn32-defs.sh COMMONPAGESIZE=3D"CONSTANT (COMMONPAGESIZE)" -INITIAL_READONLY_SECTIONS=3D" +INITIAL_READONLY_SECTIONS=3D +if test -z "${CREATE_SHLIB}"; then + INITIAL_READONLY_SECTIONS=3D".interp ${RELOCATING-0} : { *(.interp= ) }" +fi +INITIAL_READONLY_SECTIONS=3D"${INITIAL_READONLY_SECTIONS} .MIPS.abiflags ${RELOCATING-0} : { *(.MIPS.abiflags) } .MIPS.xhash ${RELOCATING-0} : { *(.MIPS.xhash) } .MIPS.options : { *(.MIPS.options) } diff --git a/ld/testsuite/ld-mips-elf/mips-elf.exp b/ld/testsuite/ld-mips-e= lf/mips-elf.exp index 920bb121a67..44f9dc95c44 100644 --- a/ld/testsuite/ld-mips-elf/mips-elf.exp +++ b/ld/testsuite/ld-mips-elf/mips-elf.exp @@ -1669,3 +1669,24 @@ run_dump_test_n64 "global-local-symtab-sort-n64${tmi= ps}" run_dump_test_o32 "global-local-symtab-final-o32" run_dump_test_n32 "global-local-symtab-final-n32" run_dump_test_n64 "global-local-symtab-final-n64" + +# Section ordering tests. +foreach { abi } $abis { + set ps2 [expr \ + ({$abi} =3D=3D {"n32"} && [istarget "mips64*el-ps2-elf*"]) ? {"p"} : {""}] + run_ld_link_tests [list \ + [list \ + "MIPS section ordering test 1 ($abi)" \ + "$abi_ldflags($abi) -r" "" \ + "$abi_asflags($abi) -mpdr" \ + [list sections.s] \ + [list "readelf -WS sections-1-${abi}${tmips}${ps2}.rd"] \ + "sections-1-${abi}.o"] \ + [list \ + "MIPS section ordering test 2 ($abi)" \ + "$abi_ldflags($abi) -e 0" "" \ + "$abi_asflags($abi) -mpdr" \ + [list sections.s] \ + [list "readelf -WS sections-2-${abi}${tmips}${ps2}.rd"] \ + "sections-2-${abi}"]] +} diff --git a/ld/testsuite/ld-mips-elf/pie-n64.d b/ld/testsuite/ld-mips-elf/= pie-n64.d index bf7c6b2272a..1fda2512c8e 100644 --- a/ld/testsuite/ld-mips-elf/pie-n64.d +++ b/ld/testsuite/ld-mips-elf/pie-n64.d @@ -2,16 +2,16 @@ #ld: -pie #readelf: -d =20 -Dynamic section at offset 0x208 contains 17 entries: +Dynamic section at offset 0x220 contains 17 entries: Tag * Type * Name/Value - 0x0+00000004 \(HASH\) * 0x368 - 0x0+00000005 \(STRTAB\) * 0x3c8 - 0x0+00000006 \(SYMTAB\) * 0x380 + 0x0+00000004 \(HASH\) * 0x380 + 0x0+00000005 \(STRTAB\) * 0x3e0 + 0x0+00000006 \(SYMTAB\) * 0x398 0x0+0000000a \(STRSZ\) * 28 \(bytes\) 0x0+0000000b \(SYMENT\) * 24 \(bytes\) - 0x0+70000035 \(MIPS_RLD_MAP_REL\) * 0x101c8 + 0x0+70000035 \(MIPS_RLD_MAP_REL\) * 0x101a0 0x0+00000015 \(DEBUG\) * 0x0 - 0x0+00000003 \(PLTGOT\) * 0x10430 + 0x0+00000003 \(PLTGOT\) * 0x10420 0x0+70000001 \(MIPS_RLD_VERSION\) * 1 0x0+70000005 \(MIPS_FLAGS\) * NOTPOT 0x0+70000006 \(MIPS_BASE_ADDRESS\) * 0x0 diff --git a/ld/testsuite/ld-mips-elf/sections-1-n32.rd b/ld/testsuite/ld-m= ips-elf/sections-1-n32.rd new file mode 100644 index 00000000000..ee7043bad6f --- /dev/null +++ b/ld/testsuite/ld-mips-elf/sections-1-n32.rd @@ -0,0 +1,36 @@ +There are [0-9]+ section headers, starting at offset 0x[0-9a-f]+: + +Section Headers: + \[Nr\] Name +Type .* + \[..\] +NULL .* + \[..\] \.interp +PROGBITS .* + \[..\] \.MIPS\.abiflags +MIPS_ABIFLAGS .* + \[..\] \.MIPS\.xhash +MIPS_XHASH .* + \[..\] \.reginfo +MIPS_REGINFO .* + \[..\] \.text +PROGBITS .* + \[..\] \.data +PROGBITS .* + \[..\] \.rodata +PROGBITS .* + \[..\] \.got\.plt +PROGBITS .* + \[..\] \.got +PROGBITS .* + \[..\] \.sdata +PROGBITS .* + \[..\] \.lit8 +PROGBITS .* + \[..\] \.lit4 +PROGBITS .* + \[..\] \.sbss +NOBITS .* + \[..\] \.bss +NOBITS .* + \[..\] \.pdr +PROGBITS .* + \[..\] \.gcc_compiled_long32 +PROGBITS .* + \[..\] \.gcc_compiled_long64 +PROGBITS .* + \[..\] \.gptab\.sbss +MIPS_GPTAB .* + \[..\] \.gptab\.sdata +MIPS_GPTAB .* + \[..\] \.mdebug\.abi32 +PROGBITS .* + \[..\] \.mdebug\.abi64 +PROGBITS .* + \[..\] \.mdebug\.abiN32 +PROGBITS .* + \[..\] \.mdebug\.abiO64 +PROGBITS .* + \[..\] \.mdebug\.eabi32 +PROGBITS .* + \[..\] \.mdebug\.eabi64 +PROGBITS .* + \[..\] \.gnu\.attributes +GNU_ATTRIBUTES .* + \[..\] \.symtab +SYMTAB .* + \[..\] \.strtab +STRTAB .* + \[..\] \.shstrtab +STRTAB .* +Key to Flags: +#pass diff --git a/ld/testsuite/ld-mips-elf/sections-1-n32p.rd b/ld/testsuite/ld-= mips-elf/sections-1-n32p.rd new file mode 100644 index 00000000000..3e210acd437 --- /dev/null +++ b/ld/testsuite/ld-mips-elf/sections-1-n32p.rd @@ -0,0 +1,36 @@ +There are [0-9]+ section headers, starting at offset 0x[0-9a-f]+: + +Section Headers: + \[Nr\] Name +Type .* + \[..\] +NULL .* + \[..\] \.interp +PROGBITS .* + \[..\] \.MIPS\.abiflags +MIPS_ABIFLAGS .* + \[..\] \.MIPS\.xhash +MIPS_XHASH .* + \[..\] \.reginfo +MIPS_REGINFO .* + \[..\] \.text +PROGBITS .* + \[..\] \.rodata +PROGBITS .* + \[..\] \.data +PROGBITS .* + \[..\] \.got\.plt +PROGBITS .* + \[..\] \.got +PROGBITS .* + \[..\] \.sdata +PROGBITS .* + \[..\] \.lit8 +PROGBITS .* + \[..\] \.lit4 +PROGBITS .* + \[..\] \.sbss +NOBITS .* + \[..\] \.bss +NOBITS .* + \[..\] \.pdr +PROGBITS .* + \[..\] \.gcc_compiled_long32 +PROGBITS .* + \[..\] \.gcc_compiled_long64 +PROGBITS .* + \[..\] \.mdebug\.abi32 +PROGBITS .* + \[..\] \.mdebug\.abi64 +PROGBITS .* + \[..\] \.mdebug\.abiN32 +PROGBITS .* + \[..\] \.mdebug\.abiO64 +PROGBITS .* + \[..\] \.mdebug\.eabi32 +PROGBITS .* + \[..\] \.mdebug\.eabi64 +PROGBITS .* + \[..\] \.gnu\.attributes +GNU_ATTRIBUTES .* + \[..\] \.gptab\.sdata +MIPS_GPTAB .* + \[..\] \.gptab\.sbss +MIPS_GPTAB .* + \[..\] \.symtab +SYMTAB .* + \[..\] \.strtab +STRTAB .* + \[..\] \.shstrtab +STRTAB .* +Key to Flags: +#pass diff --git a/ld/testsuite/ld-mips-elf/sections-1-n32t.rd b/ld/testsuite/ld-= mips-elf/sections-1-n32t.rd new file mode 100644 index 00000000000..3e210acd437 --- /dev/null +++ b/ld/testsuite/ld-mips-elf/sections-1-n32t.rd @@ -0,0 +1,36 @@ +There are [0-9]+ section headers, starting at offset 0x[0-9a-f]+: + +Section Headers: + \[Nr\] Name +Type .* + \[..\] +NULL .* + \[..\] \.interp +PROGBITS .* + \[..\] \.MIPS\.abiflags +MIPS_ABIFLAGS .* + \[..\] \.MIPS\.xhash +MIPS_XHASH .* + \[..\] \.reginfo +MIPS_REGINFO .* + \[..\] \.text +PROGBITS .* + \[..\] \.rodata +PROGBITS .* + \[..\] \.data +PROGBITS .* + \[..\] \.got\.plt +PROGBITS .* + \[..\] \.got +PROGBITS .* + \[..\] \.sdata +PROGBITS .* + \[..\] \.lit8 +PROGBITS .* + \[..\] \.lit4 +PROGBITS .* + \[..\] \.sbss +NOBITS .* + \[..\] \.bss +NOBITS .* + \[..\] \.pdr +PROGBITS .* + \[..\] \.gcc_compiled_long32 +PROGBITS .* + \[..\] \.gcc_compiled_long64 +PROGBITS .* + \[..\] \.mdebug\.abi32 +PROGBITS .* + \[..\] \.mdebug\.abi64 +PROGBITS .* + \[..\] \.mdebug\.abiN32 +PROGBITS .* + \[..\] \.mdebug\.abiO64 +PROGBITS .* + \[..\] \.mdebug\.eabi32 +PROGBITS .* + \[..\] \.mdebug\.eabi64 +PROGBITS .* + \[..\] \.gnu\.attributes +GNU_ATTRIBUTES .* + \[..\] \.gptab\.sdata +MIPS_GPTAB .* + \[..\] \.gptab\.sbss +MIPS_GPTAB .* + \[..\] \.symtab +SYMTAB .* + \[..\] \.strtab +STRTAB .* + \[..\] \.shstrtab +STRTAB .* +Key to Flags: +#pass diff --git a/ld/testsuite/ld-mips-elf/sections-1-n64.rd b/ld/testsuite/ld-m= ips-elf/sections-1-n64.rd new file mode 100644 index 00000000000..57323de23e3 --- /dev/null +++ b/ld/testsuite/ld-mips-elf/sections-1-n64.rd @@ -0,0 +1,36 @@ +There are [0-9]+ section headers, starting at offset 0x[0-9a-f]+: + +Section Headers: + \[Nr\] Name +Type .* + \[..\] +NULL .* + \[..\] \.interp +PROGBITS .* + \[..\] \.MIPS\.abiflags +MIPS_ABIFLAGS .* + \[..\] \.MIPS\.xhash +MIPS_XHASH .* + \[..\] \.MIPS\.options +MIPS_OPTIONS .* + \[..\] \.text +PROGBITS .* + \[..\] \.data +PROGBITS .* + \[..\] \.rodata +PROGBITS .* + \[..\] \.got\.plt +PROGBITS .* + \[..\] \.got +PROGBITS .* + \[..\] \.sdata +PROGBITS .* + \[..\] \.lit8 +PROGBITS .* + \[..\] \.lit4 +PROGBITS .* + \[..\] \.sbss +NOBITS .* + \[..\] \.bss +NOBITS .* + \[..\] \.pdr +PROGBITS .* + \[..\] \.gcc_compiled_long32 +PROGBITS .* + \[..\] \.gcc_compiled_long64 +PROGBITS .* + \[..\] \.gptab\.sbss +MIPS_GPTAB .* + \[..\] \.gptab\.sdata +MIPS_GPTAB .* + \[..\] \.mdebug\.abi32 +PROGBITS .* + \[..\] \.mdebug\.abi64 +PROGBITS .* + \[..\] \.mdebug\.abiN32 +PROGBITS .* + \[..\] \.mdebug\.abiO64 +PROGBITS .* + \[..\] \.mdebug\.eabi32 +PROGBITS .* + \[..\] \.mdebug\.eabi64 +PROGBITS .* + \[..\] \.gnu\.attributes +GNU_ATTRIBUTES .* + \[..\] \.symtab +SYMTAB .* + \[..\] \.strtab +STRTAB .* + \[..\] \.shstrtab +STRTAB .* +Key to Flags: +#pass diff --git a/ld/testsuite/ld-mips-elf/sections-1-n64t.rd b/ld/testsuite/ld-= mips-elf/sections-1-n64t.rd new file mode 100644 index 00000000000..3852b62e808 --- /dev/null +++ b/ld/testsuite/ld-mips-elf/sections-1-n64t.rd @@ -0,0 +1,36 @@ +There are [0-9]+ section headers, starting at offset 0x[0-9a-f]+: + +Section Headers: + \[Nr\] Name +Type .* + \[..\] +NULL .* + \[..\] \.interp +PROGBITS .* + \[..\] \.MIPS\.abiflags +MIPS_ABIFLAGS .* + \[..\] \.MIPS\.xhash +MIPS_XHASH .* + \[..\] \.MIPS\.options +MIPS_OPTIONS .* + \[..\] \.text +PROGBITS .* + \[..\] \.rodata +PROGBITS .* + \[..\] \.data +PROGBITS .* + \[..\] \.got\.plt +PROGBITS .* + \[..\] \.got +PROGBITS .* + \[..\] \.sdata +PROGBITS .* + \[..\] \.lit8 +PROGBITS .* + \[..\] \.lit4 +PROGBITS .* + \[..\] \.sbss +NOBITS .* + \[..\] \.bss +NOBITS .* + \[..\] \.pdr +PROGBITS .* + \[..\] \.gcc_compiled_long32 +PROGBITS .* + \[..\] \.gcc_compiled_long64 +PROGBITS .* + \[..\] \.mdebug\.abi32 +PROGBITS .* + \[..\] \.mdebug\.abi64 +PROGBITS .* + \[..\] \.mdebug\.abiN32 +PROGBITS .* + \[..\] \.mdebug\.abiO64 +PROGBITS .* + \[..\] \.mdebug\.eabi32 +PROGBITS .* + \[..\] \.mdebug\.eabi64 +PROGBITS .* + \[..\] \.gnu\.attributes +GNU_ATTRIBUTES .* + \[..\] \.gptab\.sdata +MIPS_GPTAB .* + \[..\] \.gptab\.sbss +MIPS_GPTAB .* + \[..\] \.symtab +SYMTAB .* + \[..\] \.strtab +STRTAB .* + \[..\] \.shstrtab +STRTAB .* +Key to Flags: +#pass diff --git a/ld/testsuite/ld-mips-elf/sections-1-o32.rd b/ld/testsuite/ld-m= ips-elf/sections-1-o32.rd new file mode 100644 index 00000000000..5a601e64dfa --- /dev/null +++ b/ld/testsuite/ld-mips-elf/sections-1-o32.rd @@ -0,0 +1,36 @@ +There are [0-9]+ section headers, starting at offset 0x[0-9a-f]+: + +Section Headers: + \[Nr\] Name +Type .* + \[..\] +NULL .* + \[..\] \.interp +PROGBITS .* + \[..\] \.MIPS\.abiflags +MIPS_ABIFLAGS .* + \[..\] \.reginfo +MIPS_REGINFO .* + \[..\] \.MIPS\.xhash +MIPS_XHASH .* + \[..\] \.text +PROGBITS .* + \[..\] \.rodata +PROGBITS .* + \[..\] \.data +PROGBITS .* + \[..\] \.got\.plt +PROGBITS .* + \[..\] \.got +PROGBITS .* + \[..\] \.sdata +PROGBITS .* + \[..\] \.lit8 +PROGBITS .* + \[..\] \.lit4 +PROGBITS .* + \[..\] \.sbss +NOBITS .* + \[..\] \.bss +NOBITS .* + \[..\] \.pdr +PROGBITS .* + \[..\] \.gnu\.attributes +GNU_ATTRIBUTES .* + \[..\] \.gptab\.sdata +MIPS_GPTAB .* + \[..\] \.gptab\.sbss +MIPS_GPTAB .* + \[..\] \.mdebug\.abi32 +PROGBITS .* + \[..\] \.mdebug\.abiN32 +PROGBITS .* + \[..\] \.mdebug\.abi64 +PROGBITS .* + \[..\] \.mdebug\.abiO64 +PROGBITS .* + \[..\] \.mdebug\.eabi32 +PROGBITS .* + \[..\] \.mdebug\.eabi64 +PROGBITS .* + \[..\] \.gcc_compiled_long32 +PROGBITS .* + \[..\] \.gcc_compiled_long64 +PROGBITS .* + \[..\] \.symtab +SYMTAB .* + \[..\] \.strtab +STRTAB .* + \[..\] \.shstrtab +STRTAB .* +Key to Flags: +#pass diff --git a/ld/testsuite/ld-mips-elf/sections-1-o32t.rd b/ld/testsuite/ld-= mips-elf/sections-1-o32t.rd new file mode 100644 index 00000000000..29daf27eff4 --- /dev/null +++ b/ld/testsuite/ld-mips-elf/sections-1-o32t.rd @@ -0,0 +1,36 @@ +There are [0-9]+ section headers, starting at offset 0x[0-9a-f]+: + +Section Headers: + \[Nr\] Name +Type .* + \[..\] +NULL .* + \[..\] \.interp +PROGBITS .* + \[..\] \.MIPS\.abiflags +MIPS_ABIFLAGS .* + \[..\] \.reginfo +MIPS_REGINFO .* + \[..\] \.MIPS\.xhash +MIPS_XHASH .* + \[..\] \.text +PROGBITS .* + \[..\] \.rodata +PROGBITS .* + \[..\] \.got\.plt +PROGBITS .* + \[..\] \.data +PROGBITS .* + \[..\] \.got +PROGBITS .* + \[..\] \.sdata +PROGBITS .* + \[..\] \.lit8 +PROGBITS .* + \[..\] \.lit4 +PROGBITS .* + \[..\] \.sbss +NOBITS .* + \[..\] \.bss +NOBITS .* + \[..\] \.pdr +PROGBITS .* + \[..\] \.gnu\.attributes +GNU_ATTRIBUTES .* + \[..\] \.gptab\.sdata +MIPS_GPTAB .* + \[..\] \.gptab\.sbss +MIPS_GPTAB .* + \[..\] \.mdebug\.abi32 +PROGBITS .* + \[..\] \.mdebug\.abiN32 +PROGBITS .* + \[..\] \.mdebug\.abi64 +PROGBITS .* + \[..\] \.mdebug\.abiO64 +PROGBITS .* + \[..\] \.mdebug\.eabi32 +PROGBITS .* + \[..\] \.mdebug\.eabi64 +PROGBITS .* + \[..\] \.gcc_compiled_long32 +PROGBITS .* + \[..\] \.gcc_compiled_long64 +PROGBITS .* + \[..\] \.symtab +SYMTAB .* + \[..\] \.strtab +STRTAB .* + \[..\] \.shstrtab +STRTAB .* +Key to Flags: +#pass diff --git a/ld/testsuite/ld-mips-elf/sections-2-n32.rd b/ld/testsuite/ld-m= ips-elf/sections-2-n32.rd new file mode 100644 index 00000000000..e6accc29e6a --- /dev/null +++ b/ld/testsuite/ld-mips-elf/sections-2-n32.rd @@ -0,0 +1,33 @@ +There are [0-9]+ section headers, starting at offset 0x[0-9a-f]+: + +Section Headers: + \[Nr\] Name +Type .* + \[..\] +NULL .* + \[..\] \.interp +PROGBITS .* + \[..\] \.MIPS\.abiflags +MIPS_ABIFLAGS .* + \[..\] \.MIPS\.xhash +MIPS_XHASH .* + \[..\] \.reginfo +MIPS_REGINFO .* + \[..\] \.text +PROGBITS .* + \[..\] \.data +PROGBITS .* + \[..\] \.rodata +PROGBITS .* + \[..\] \.got\.plt +PROGBITS .* + \[..\] \.got +PROGBITS .* + \[..\] \.sdata +PROGBITS .* + \[..\] \.lit8 +PROGBITS .* + \[..\] \.lit4 +PROGBITS .* + \[..\] \.sbss +NOBITS .* + \[..\] \.bss +NOBITS .* + \[..\] \.gcc_compiled_long32 +PROGBITS .* + \[..\] \.gcc_compiled_long64 +PROGBITS .* + \[..\] \.mdebug\.abi32 +PROGBITS .* + \[..\] \.mdebug\.abi64 +PROGBITS .* + \[..\] \.mdebug\.abiN32 +PROGBITS .* + \[..\] \.mdebug\.abiO64 +PROGBITS .* + \[..\] \.mdebug\.eabi32 +PROGBITS .* + \[..\] \.mdebug\.eabi64 +PROGBITS .* + \[..\] \.gnu\.attributes +GNU_ATTRIBUTES .* + \[..\] \.symtab +SYMTAB .* + \[..\] \.strtab +STRTAB .* + \[..\] \.shstrtab +STRTAB .* +Key to Flags: +#pass diff --git a/ld/testsuite/ld-mips-elf/sections-2-n32p.rd b/ld/testsuite/ld-= mips-elf/sections-2-n32p.rd new file mode 100644 index 00000000000..5932768752d --- /dev/null +++ b/ld/testsuite/ld-mips-elf/sections-2-n32p.rd @@ -0,0 +1,33 @@ +There are [0-9]+ section headers, starting at offset 0x[0-9a-f]+: + +Section Headers: + \[Nr\] Name +Type .* + \[..\] +NULL .* + \[..\] \.interp +PROGBITS .* + \[..\] \.MIPS\.abiflags +MIPS_ABIFLAGS .* + \[..\] \.MIPS\.xhash +MIPS_XHASH .* + \[..\] \.reginfo +MIPS_REGINFO .* + \[..\] \.text +PROGBITS .* + \[..\] \.rodata +PROGBITS .* + \[..\] \.data +PROGBITS .* + \[..\] \.got\.plt +PROGBITS .* + \[..\] \.got +PROGBITS .* + \[..\] \.sdata +PROGBITS .* + \[..\] \.lit8 +PROGBITS .* + \[..\] \.lit4 +PROGBITS .* + \[..\] \.sbss +NOBITS .* + \[..\] \.bss +NOBITS .* + \[..\] \.gcc_compiled_long32 +PROGBITS .* + \[..\] \.gcc_compiled_long64 +PROGBITS .* + \[..\] \.mdebug\.abi32 +PROGBITS .* + \[..\] \.mdebug\.abi64 +PROGBITS .* + \[..\] \.mdebug\.abiN32 +PROGBITS .* + \[..\] \.mdebug\.abiO64 +PROGBITS .* + \[..\] \.mdebug\.eabi32 +PROGBITS .* + \[..\] \.mdebug\.eabi64 +PROGBITS .* + \[..\] \.gnu\.attributes +GNU_ATTRIBUTES .* + \[..\] \.symtab +SYMTAB .* + \[..\] \.strtab +STRTAB .* + \[..\] \.shstrtab +STRTAB .* +Key to Flags: +#pass diff --git a/ld/testsuite/ld-mips-elf/sections-2-n32t.rd b/ld/testsuite/ld-= mips-elf/sections-2-n32t.rd new file mode 100644 index 00000000000..5932768752d --- /dev/null +++ b/ld/testsuite/ld-mips-elf/sections-2-n32t.rd @@ -0,0 +1,33 @@ +There are [0-9]+ section headers, starting at offset 0x[0-9a-f]+: + +Section Headers: + \[Nr\] Name +Type .* + \[..\] +NULL .* + \[..\] \.interp +PROGBITS .* + \[..\] \.MIPS\.abiflags +MIPS_ABIFLAGS .* + \[..\] \.MIPS\.xhash +MIPS_XHASH .* + \[..\] \.reginfo +MIPS_REGINFO .* + \[..\] \.text +PROGBITS .* + \[..\] \.rodata +PROGBITS .* + \[..\] \.data +PROGBITS .* + \[..\] \.got\.plt +PROGBITS .* + \[..\] \.got +PROGBITS .* + \[..\] \.sdata +PROGBITS .* + \[..\] \.lit8 +PROGBITS .* + \[..\] \.lit4 +PROGBITS .* + \[..\] \.sbss +NOBITS .* + \[..\] \.bss +NOBITS .* + \[..\] \.gcc_compiled_long32 +PROGBITS .* + \[..\] \.gcc_compiled_long64 +PROGBITS .* + \[..\] \.mdebug\.abi32 +PROGBITS .* + \[..\] \.mdebug\.abi64 +PROGBITS .* + \[..\] \.mdebug\.abiN32 +PROGBITS .* + \[..\] \.mdebug\.abiO64 +PROGBITS .* + \[..\] \.mdebug\.eabi32 +PROGBITS .* + \[..\] \.mdebug\.eabi64 +PROGBITS .* + \[..\] \.gnu\.attributes +GNU_ATTRIBUTES .* + \[..\] \.symtab +SYMTAB .* + \[..\] \.strtab +STRTAB .* + \[..\] \.shstrtab +STRTAB .* +Key to Flags: +#pass diff --git a/ld/testsuite/ld-mips-elf/sections-2-n64.rd b/ld/testsuite/ld-m= ips-elf/sections-2-n64.rd new file mode 100644 index 00000000000..2f7afdd5fcf --- /dev/null +++ b/ld/testsuite/ld-mips-elf/sections-2-n64.rd @@ -0,0 +1,33 @@ +There are [0-9]+ section headers, starting at offset 0x[0-9a-f]+: + +Section Headers: + \[Nr\] Name +Type .* + \[..\] +NULL .* + \[..\] \.interp +PROGBITS .* + \[..\] \.MIPS\.abiflags +MIPS_ABIFLAGS .* + \[..\] \.MIPS\.xhash +MIPS_XHASH .* + \[..\] \.MIPS\.options +MIPS_OPTIONS .* + \[..\] \.text +PROGBITS .* + \[..\] \.data +PROGBITS .* + \[..\] \.rodata +PROGBITS .* + \[..\] \.got\.plt +PROGBITS .* + \[..\] \.got +PROGBITS .* + \[..\] \.sdata +PROGBITS .* + \[..\] \.lit8 +PROGBITS .* + \[..\] \.lit4 +PROGBITS .* + \[..\] \.sbss +NOBITS .* + \[..\] \.bss +NOBITS .* + \[..\] \.gcc_compiled_long32 +PROGBITS .* + \[..\] \.gcc_compiled_long64 +PROGBITS .* + \[..\] \.mdebug\.abi32 +PROGBITS .* + \[..\] \.mdebug\.abi64 +PROGBITS .* + \[..\] \.mdebug\.abiN32 +PROGBITS .* + \[..\] \.mdebug\.abiO64 +PROGBITS .* + \[..\] \.mdebug\.eabi32 +PROGBITS .* + \[..\] \.mdebug\.eabi64 +PROGBITS .* + \[..\] \.gnu\.attributes +GNU_ATTRIBUTES .* + \[..\] \.symtab +SYMTAB .* + \[..\] \.strtab +STRTAB .* + \[..\] \.shstrtab +STRTAB .* +Key to Flags: +#pass diff --git a/ld/testsuite/ld-mips-elf/sections-2-n64t.rd b/ld/testsuite/ld-= mips-elf/sections-2-n64t.rd new file mode 100644 index 00000000000..d24e04bbc0a --- /dev/null +++ b/ld/testsuite/ld-mips-elf/sections-2-n64t.rd @@ -0,0 +1,33 @@ +There are [0-9]+ section headers, starting at offset 0x[0-9a-f]+: + +Section Headers: + \[Nr\] Name +Type .* + \[..\] +NULL .* + \[..\] \.interp +PROGBITS .* + \[..\] \.MIPS\.abiflags +MIPS_ABIFLAGS .* + \[..\] \.MIPS\.xhash +MIPS_XHASH .* + \[..\] \.MIPS\.options +MIPS_OPTIONS .* + \[..\] \.text +PROGBITS .* + \[..\] \.rodata +PROGBITS .* + \[..\] \.data +PROGBITS .* + \[..\] \.got\.plt +PROGBITS .* + \[..\] \.got +PROGBITS .* + \[..\] \.sdata +PROGBITS .* + \[..\] \.lit8 +PROGBITS .* + \[..\] \.lit4 +PROGBITS .* + \[..\] \.sbss +NOBITS .* + \[..\] \.bss +NOBITS .* + \[..\] \.gcc_compiled_long32 +PROGBITS .* + \[..\] \.gcc_compiled_long64 +PROGBITS .* + \[..\] \.mdebug\.abi32 +PROGBITS .* + \[..\] \.mdebug\.abi64 +PROGBITS .* + \[..\] \.mdebug\.abiN32 +PROGBITS .* + \[..\] \.mdebug\.abiO64 +PROGBITS .* + \[..\] \.mdebug\.eabi32 +PROGBITS .* + \[..\] \.mdebug\.eabi64 +PROGBITS .* + \[..\] \.gnu\.attributes +GNU_ATTRIBUTES .* + \[..\] \.symtab +SYMTAB .* + \[..\] \.strtab +STRTAB .* + \[..\] \.shstrtab +STRTAB .* +Key to Flags: +#pass diff --git a/ld/testsuite/ld-mips-elf/sections-2-o32.rd b/ld/testsuite/ld-m= ips-elf/sections-2-o32.rd new file mode 100644 index 00000000000..7bb32630cd5 --- /dev/null +++ b/ld/testsuite/ld-mips-elf/sections-2-o32.rd @@ -0,0 +1,33 @@ +There are [0-9]+ section headers, starting at offset 0x[0-9a-f]+: + +Section Headers: + \[Nr\] Name +Type .* + \[..\] +NULL .* + \[..\] \.interp +PROGBITS .* + \[..\] \.MIPS\.abiflags +MIPS_ABIFLAGS .* + \[..\] \.reginfo +MIPS_REGINFO .* + \[..\] \.MIPS\.xhash +MIPS_XHASH .* + \[..\] \.text +PROGBITS .* + \[..\] \.rodata +PROGBITS .* + \[..\] \.data +PROGBITS .* + \[..\] \.got\.plt +PROGBITS .* + \[..\] \.got +PROGBITS .* + \[..\] \.sdata +PROGBITS .* + \[..\] \.lit8 +PROGBITS .* + \[..\] \.lit4 +PROGBITS .* + \[..\] \.sbss +NOBITS .* + \[..\] \.bss +NOBITS .* + \[..\] \.gnu\.attributes +GNU_ATTRIBUTES .* + \[..\] \.mdebug\.abi32 +PROGBITS .* + \[..\] \.mdebug\.abiN32 +PROGBITS .* + \[..\] \.mdebug\.abi64 +PROGBITS .* + \[..\] \.mdebug\.abiO64 +PROGBITS .* + \[..\] \.mdebug\.eabi32 +PROGBITS .* + \[..\] \.mdebug\.eabi64 +PROGBITS .* + \[..\] \.gcc_compiled_long32 +PROGBITS .* + \[..\] \.gcc_compiled_long64 +PROGBITS .* + \[..\] \.symtab +SYMTAB .* + \[..\] \.strtab +STRTAB .* + \[..\] \.shstrtab +STRTAB .* +Key to Flags: +#pass diff --git a/ld/testsuite/ld-mips-elf/sections-2-o32t.rd b/ld/testsuite/ld-= mips-elf/sections-2-o32t.rd new file mode 100644 index 00000000000..a0fc114c138 --- /dev/null +++ b/ld/testsuite/ld-mips-elf/sections-2-o32t.rd @@ -0,0 +1,33 @@ +There are [0-9]+ section headers, starting at offset 0x[0-9a-f]+: + +Section Headers: + \[Nr\] Name +Type .* + \[..\] +NULL .* + \[..\] \.interp +PROGBITS .* + \[..\] \.MIPS\.abiflags +MIPS_ABIFLAGS .* + \[..\] \.reginfo +MIPS_REGINFO .* + \[..\] \.MIPS\.xhash +MIPS_XHASH .* + \[..\] \.text +PROGBITS .* + \[..\] \.rodata +PROGBITS .* + \[..\] \.got\.plt +PROGBITS .* + \[..\] \.data +PROGBITS .* + \[..\] \.got +PROGBITS .* + \[..\] \.sdata +PROGBITS .* + \[..\] \.lit8 +PROGBITS .* + \[..\] \.lit4 +PROGBITS .* + \[..\] \.sbss +NOBITS .* + \[..\] \.bss +NOBITS .* + \[..\] \.gnu\.attributes +GNU_ATTRIBUTES .* + \[..\] \.mdebug\.abi32 +PROGBITS .* + \[..\] \.mdebug\.abiN32 +PROGBITS .* + \[..\] \.mdebug\.abi64 +PROGBITS .* + \[..\] \.mdebug\.abiO64 +PROGBITS .* + \[..\] \.mdebug\.eabi32 +PROGBITS .* + \[..\] \.mdebug\.eabi64 +PROGBITS .* + \[..\] \.gcc_compiled_long32 +PROGBITS .* + \[..\] \.gcc_compiled_long64 +PROGBITS .* + \[..\] \.symtab +SYMTAB .* + \[..\] \.strtab +STRTAB .* + \[..\] \.shstrtab +STRTAB .* +Key to Flags: +#pass diff --git a/ld/testsuite/ld-mips-elf/sections.s b/ld/testsuite/ld-mips-elf= /sections.s new file mode 100644 index 00000000000..303934920e2 --- /dev/null +++ b/ld/testsuite/ld-mips-elf/sections.s @@ -0,0 +1,44 @@ + .section .MIPS.xhash + .dc.l 0 + .section .bss + .dc.l 0 + .section .data + .dc.l 0 + .section .gcc_compiled_long32 + .dc.l 0 + .section .gcc_compiled_long64 + .dc.l 0 + .section .got + .dc.l 0 + .section .got.plt + .dc.l 0 + .section .gptab.sbss + .dc.l 0 + .section .gptab.sdata + .dc.l 0 + .section .interp + .dc.l 0 + .section .lit4 + .dc.l 0 + .section .lit8 + .dc.l 0 + .section .mdebug.abi32 + .dc.l 0 + .section .mdebug.abi64 + .dc.l 0 + .section .mdebug.abiN32 + .dc.l 0 + .section .mdebug.abiO64 + .dc.l 0 + .section .mdebug.eabi32 + .dc.l 0 + .section .mdebug.eabi64 + .dc.l 0 + .section .rodata + .dc.l 0 + .section .sbss + .dc.l 0 + .section .sdata + .dc.l 0 + .section .text + .dc.l 0