[AArch64] Select correct linker emulation for ILP32 according to endianes

2015-06-17  Jiong Wang  <jiong.wang@arm.com>

ld/testsuite/
  * ld-aarch64/aarch64-elf.exp (aarch64_choose_ilp32_emul): New function.
  * ld-aarch64/emit-relocs-28.d: Use aarch64_choose_ilp32_emul to choose
  emulation mode.
This commit is contained in:
Jiong Wang 2015-06-17 16:36:04 +01:00
parent 5fc177c895
commit 696ddf4b52
3 changed files with 24 additions and 10 deletions

View file

@ -1,3 +1,9 @@
2015-06-17 Jiong Wang <jiong.wang@arm.com>
* ld-aarch64/aarch64-elf.exp (aarch64_choose_ilp32_emul): New function.
* ld-aarch64/emit-relocs-28.d: Use aarch64_choose_ilp32_emul to choose
emulation mode.
2015-06-16 Alan Modra <amodra@gmail.com>
* ld-powerpc/ppc476-shared.s: Repeat dynamic reloc generating insns.

View file

@ -45,6 +45,14 @@ set aarch64elftests {
"erratum835769"}
}
proc aarch64_choose_ilp32_emul {} {
if [istarget aarch64_be*-*-*] then {
return "aarch64elf32b"
} else {
return "aarch64linux32"
}
}
run_ld_link_tests $aarch64elftests
run_dump_test "erratum843419"

View file

@ -1,6 +1,6 @@
#source: emit-relocs-28.s
#as: -mabi=ilp32
#ld: -m aarch64linux32 --defsym globala=0x11000 --defsym globalb=0x45000 --defsym globalc=0x1234 -e0 --emit-relocs
#ld: -m [aarch64_choose_ilp32_emul] --defsym globala=0x11000 --defsym globalb=0x45000 --defsym globalc=0x1234 -e0 --emit-relocs
#objdump: -dr
.*: +file format .*
@ -8,12 +8,12 @@
Disassembly of section .text:
00400074 <\.text>:
400074: 90000082 adrp x2, 410000 <globalb\+0x3cb000>
400074: R_AARCH64_P32_ADR_PREL_PG_HI21 _GLOBAL_OFFSET_TABLE_
400078: f9408c40 ldr x0, \[x2,#280\]
400078: R_AARCH64_P32_LD32_GOTPAGE_LO14 globala
40007c: f9409040 ldr x0, \[x2,#288\]
40007c: R_AARCH64_P32_LD32_GOTPAGE_LO14 globalb
400080: f9408840 ldr x0, \[x2,#272\]
400080: R_AARCH64_P32_LD32_GOTPAGE_LO14 globalc
.* <\.text>:
.*: .* adrp x2, .* <.*>
.*: R_AARCH64_P32_ADR_PREL_PG_HI21 _GLOBAL_OFFSET_TABLE_
.*: .* ldr x0, \[x2,#.*\]
.*: R_AARCH64_P32_LD32_GOTPAGE_LO14 globala
.*: .* ldr x0, \[x2,#.*\]
.*: R_AARCH64_P32_LD32_GOTPAGE_LO14 globalb
.*: .* ldr x0, \[x2,#.*\]
.*: R_AARCH64_P32_LD32_GOTPAGE_LO14 globalc