mirror of
https://sourceware.org/git/binutils-gdb.git
synced 2025-02-17 13:10:12 +08:00
Make the n64 ABI the default for 64-bit Linux targets specified with `-gnuabi64' suffix included in the target triplet, for configurations such as the Debian mips64el and mips64r6el ports. Adjust testsuite configuration accordingly. There are the following regressions with the new target triplet: mips64-linux-gnuabi64 +FAIL: readelf -S bintest mips64-linux-gnuabi64 +FAIL: MIPS reloc estimation 1 mips64el-linux-gnuabi64 +FAIL: readelf -S bintest mips64el-linux-gnuabi64 +FAIL: MIPS reloc estimation 1 The `readelf' issue comes from a difference in section headers produced that the `binutils/testsuite/binutils-all/readelf.s-64' pattern template does not match. While there has been a precedent it does not appear to me that there is a clear advantage from adding more and more variations to the template rather than forking the existing template into multiple ones for a more exact match. So this is best deferred to a separate discussion. The MIPS reloc estimation issue is an actual bug in `objdump', which discards a number of trailing entries from output here for n64 composed relocations: DYNAMIC RELOCATION RECORDS OFFSET TYPE VALUE 0000000000000000 R_MIPS_NONE *ABS* 0000000000000000 R_MIPS_NONE *ABS* and consequently `ld/testsuite/ld-mips-elf/reloc-estimate-1.d' does not match even though ELF output produced is correct according to `readelf': Relocation section '.rel.dyn' at offset 0x10400 contains 2 entries: Offset Info Type Sym. Value Sym. Name 000000000000 000000000000 R_MIPS_NONE Type2: R_MIPS_NONE Type3: R_MIPS_NONE 000000010000 000300001203 R_MIPS_REL32 0000000000010010 foo@@V2 Type2: R_MIPS_64 Type3: R_MIPS_NONE As a genuine bug this has to be handled separately. Co-Authored by: Maciej W. Rozycki <macro@orcam.me.uk> bfd/ * config.bfd: Add `mips64*el-*-linux*-gnuabi64' and `mips64*-*-linux*-gnuabi64' targets. binutils/ * testsuite/binutils-all/mips/mips.exp: Handle `*-*-*-gnuabi64' targets. * testsuite/binutils-all/objcopy.exp: Handle `mips64*-*-*-gnuabi64' targets. * testsuite/binutils-all/remove-relocs-01.d: Likewise. * testsuite/binutils-all/remove-relocs-04.d: Likewise. * testsuite/binutils-all/remove-relocs-05.d: Likewise. * testsuite/binutils-all/remove-relocs-06.d: Likewise. gas/ * configure.ac: Handle `mips64*-linux-gnuabi64' targets. * configure: Regenerate. * testsuite/gas/mips/compact-eh-eb-7.d: Handle `mips64*-*-*-gnuabi64' targets. * testsuite/gas/mips/compact-eh-el-7.d: Likewise. ld/ * configure.tgt: Add `mips64*el-*-linux-gnuabi64' and `mips64*-*-linux-gnuabi64' targets. * testsuite/ld-undefined/undefined.exp: Handle `mips64*-*-*-gnuabi64' targets. * testsuite/ld-mips-elf/attr-gnu-4-10.d: Likewise. * testsuite/ld-mips-elf/compact-eh6.d: Likewise. * testsuite/ld-mips-elf/mips-elf.exp: Handle `*-*-*-gnuabi64' targets.
45 lines
1.3 KiB
Makefile
45 lines
1.3 KiB
Makefile
#source: attr-gnu-4-1.s
|
|
#source: attr-gnu-4-0.s
|
|
#as: -mpdr
|
|
#ld: -r
|
|
#readelf: -hA
|
|
#notarget: mips64*-*-openbsd* mips64*-*-*-gnuabi64
|
|
|
|
ELF Header:
|
|
Magic: .*
|
|
Class: ELF32
|
|
Data: 2's complement,.*
|
|
Version: 1 \(current\)
|
|
OS/ABI: UNIX - .*
|
|
ABI Version: 0
|
|
Type: REL \(Relocatable file\)
|
|
Machine: MIPS R3000
|
|
Version: 0x1
|
|
Entry point address: 0x0
|
|
Start of program headers: 0 \(bytes into file\)
|
|
Start of section headers: ... \(bytes into file\)
|
|
Flags: .*
|
|
Size of this header: 52 \(bytes\)
|
|
Size of program headers: 0 \(bytes\)
|
|
Number of program headers: 0
|
|
Size of section headers: 40 \(bytes\)
|
|
Number of section headers: 11
|
|
Section header string table index: 10
|
|
|
|
Attribute Section: gnu
|
|
File Attributes
|
|
Tag_GNU_MIPS_ABI_FP: Hard float \(double precision\)
|
|
|
|
MIPS ABI Flags Version: 0
|
|
|
|
ISA: MIPS.*
|
|
GPR size: .*
|
|
CPR1 size: .*
|
|
CPR2 size: 0
|
|
FP ABI: Hard float \(double precision\)
|
|
ISA Extension: .*
|
|
ASEs:
|
|
None
|
|
FLAGS 1: 0000000.
|
|
FLAGS 2: 00000000
|