[AArch64] Select correct linker emulation for ILP32 according to endianes
authorJiong Wang <jiong.wang@arm.com>
Wed, 17 Jun 2015 15:36:04 +0000 (16:36 +0100)
committerJiong Wang <jiong.wang@arm.com>
Wed, 17 Jun 2015 15:36:04 +0000 (16:36 +0100)
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.

ld/testsuite/ChangeLog
ld/testsuite/ld-aarch64/aarch64-elf.exp
ld/testsuite/ld-aarch64/emit-relocs-28.d

index 39cbab6b061fbdf59ab6949865ecbed824d69a01..e81e616aec6bf9b15b731dedff5cc52d6cc764f9 100644 (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.
index 021343b3f8cafa129f8c8b62fdd281bfd6d89931..531ec0eab47e1662193e05b5ab99d35080686afc 100644 (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"
 
index f138fb1faf0f4eed5f08fb66c79a013e7d32ac2d..24424b93871ab24c4623fa4925a30f8a2843bbfa 100644 (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