From 696ddf4b52bd4b4d3997ca1a514b1d07fcea3715 Mon Sep 17 00:00:00 2001 From: Jiong Wang Date: Wed, 17 Jun 2015 16:36:04 +0100 Subject: [AArch64] Select correct linker emulation for ILP32 according to endianes 2015-06-17 Jiong Wang 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. --- ld/testsuite/ChangeLog | 6 ++++++ ld/testsuite/ld-aarch64/aarch64-elf.exp | 8 ++++++++ ld/testsuite/ld-aarch64/emit-relocs-28.d | 20 ++++++++++---------- 3 files changed, 24 insertions(+), 10 deletions(-) (limited to 'ld') diff --git a/ld/testsuite/ChangeLog b/ld/testsuite/ChangeLog index 39cbab6b06..e81e616aec 100644 --- a/ld/testsuite/ChangeLog +++ b/ld/testsuite/ChangeLog @@ -1,3 +1,9 @@ +2015-06-17 Jiong Wang + + * 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 * ld-powerpc/ppc476-shared.s: Repeat dynamic reloc generating insns. diff --git a/ld/testsuite/ld-aarch64/aarch64-elf.exp b/ld/testsuite/ld-aarch64/aarch64-elf.exp index 021343b3f8..531ec0eab4 100644 --- a/ld/testsuite/ld-aarch64/aarch64-elf.exp +++ b/ld/testsuite/ld-aarch64/aarch64-elf.exp @@ -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" diff --git a/ld/testsuite/ld-aarch64/emit-relocs-28.d b/ld/testsuite/ld-aarch64/emit-relocs-28.d index f138fb1faf..24424b9387 100644 --- a/ld/testsuite/ld-aarch64/emit-relocs-28.d +++ b/ld/testsuite/ld-aarch64/emit-relocs-28.d @@ -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 - 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 -- cgit v1.2.3