This is the mail archive of the
binutils@sourceware.org
mailing list for the binutils project.
Re: AArch64 testsuite failures
- From: Jiong Wang <jiong dot wang at arm dot com>
- To: Nick Clifton <nickc at redhat dot com>
- Cc: "binutils\ at sourceware dot org" <binutils at sourceware dot org>
- Date: Wed, 12 Aug 2015 11:59:23 +0100
- Subject: Re: AArch64 testsuite failures
- Authentication-results: sourceware.org; auth=none
- References: <55CB055C dot 2020306 at redhat dot com>
Nick Clifton writes:
> Hi Jiong,
>
> I am seeing some new failures in the LD tests for AArch64:
>
> Checking Binutils in: aarch64-elf ... LD: 5 done
> LD REGRESSION: ld-aarch64/emit-relocs-86
> LD REGRESSION: ld-aarch64/emit-relocs-86-overflow
> LD REGRESSION: aarch64-farcall-b-plt
> LD REGRESSION: aarch64-farcall-bl-plt
> LD REGRESSION: ld-aarch64/emit-relocs-86
> LD REGRESSION: ld-aarch64/emit-relocs-86-overflow
> LD REGRESSION: aarch64-farcall-b-plt
> LD REGRESSION: aarch64-farcall-bl-plt
>
> Checking Binutils in: aarch64_be-elf ... LD: 4 done
> LD REGRESSION: ld-aarch64/emit-relocs-86
> LD REGRESSION: ld-aarch64/emit-relocs-86-overflow
> LD REGRESSION: aarch64-farcall-b-plt
> LD REGRESSION: aarch64-farcall-bl-plt
> LD REGRESSION: ld-aarch64/emit-relocs-86
> LD REGRESSION: ld-aarch64/emit-relocs-86-overflow
> LD REGRESSION: aarch64-farcall-b-plt
> LD REGRESSION: aarch64-farcall-bl-plt
>
> This is testing with and without -mabi=ilp32 specified, which is why
> each failure is appearing twice for each target.
>
> The failures appear to be because the tests are assuming a linux target.
> Eg:
>
> ./ld-new: unrecognised emulation mode: aarch64linux32
> Supported emulations: aarch64elf aarch64elf32 aarch64elf32b
> aarch64elfb armelf armelfb
> FAIL: ld-aarch64/emit-relocs-28
>
> Or:
>
> regexp "^.*: f941f611 ldr x17, \[x16,#1000\]$"
> line " 2e0: f9421a11 ldr x17, [x16,#1072]"
> [...]
> FAIL: aarch64-farcall-b-plt
>
> Please could you update these tests to fix this problem ?
>
> Cheers
> Nick
Nick,
Thanks for noticing this.
Yes, I was testing under --target=aarch64-linux. How about the
following patch which:
* improve the ILP32 target selector "aarch64_choose_ilp32_emul",
makes it more robust. I copied those triple from configure.tgt
* updated emit-relocs-86/-overflow.d to use aarch64_choose_ilp32_emul
which is following what I have done with emit-relocs-28.
* those instruction encoding mismatch is because those encoding
contains pc-relative address. As under elf, we may have different
start address. I relaxed encodind check, especially for
aarch64-farcall-b/bl-plt, as the main purpose of those check are
ELF text/data layout, we just want to make sure veneer to plt stub
is generated.
2015-08-12 Jiong Wang <jiong.wang@arm.com>
ld/testsuite/
* ld-aarch64/aarch64-elf.exp (aarch64_choose_ilp32_emul): Support all
four triple shape: aarch64-*-linux*, aarch64-*-elf,
aarch64_be-*-linux*, aarch64_be-*-elf.
* ld-aarch64/emit-relocs-86.d: Use aarch64_choose_ilp32_emul.
* ld-aarch64/emit-relocs-86-overflow.d: Likewise.
* ld-aarch64/ld-aarch64/farcall-b-plt.d: Relax instrucion encoding
check when they reflect address.
* ld-aarch64/ld-aarch64/farcall-bl-plt.d: Likewise.
--
Regards,
Jiong
diff --git a/ld/testsuite/ld-aarch64/aarch64-elf.exp b/ld/testsuite/ld-aarch64/aarch64-elf.exp
index 9554ea1..e0aed65 100644
--- a/ld/testsuite/ld-aarch64/aarch64-elf.exp
+++ b/ld/testsuite/ld-aarch64/aarch64-elf.exp
@@ -46,10 +46,17 @@ set aarch64elftests {
}
proc aarch64_choose_ilp32_emul {} {
- if [istarget aarch64_be*-*-*] then {
+ if [istarget aarch64-*-linux*] then {
+ return "aarch64linux32"
+ } elseif [istarget aarch64-*-elf] {
+ return "aarch64elf32"
+ } elseif [istarget aarch64_be-*-linux*] {
+ return "aarch64linux32b"
+ } elseif [istarget aarch64_be-*-elf] {
return "aarch64elf32b"
} else {
- return "aarch64linux32"
+ perror "Unknown target triple."
+ exit 1
}
}
diff --git a/ld/testsuite/ld-aarch64/emit-relocs-86-overflow.d b/ld/testsuite/ld-aarch64/emit-relocs-86-overflow.d
index fb727b3..a9781a9 100644
--- a/ld/testsuite/ld-aarch64/emit-relocs-86-overflow.d
+++ b/ld/testsuite/ld-aarch64/emit-relocs-86-overflow.d
@@ -1,5 +1,5 @@
#source: emit-relocs-86-overflow.s
#as: -mabi=ilp32
-#ld: -m aarch64linux32 -e0 --emit-relocs
+#ld: -m [aarch64_choose_ilp32_emul] -e0 --emit-relocs
#objdump: -dr
#error: .*\(.text\+0x\d+\): relocation truncated to fit: R_AARCH64_P32_TLSLD_ADD_DTPREL_LO12 against symbol `v2' .*
diff --git a/ld/testsuite/ld-aarch64/emit-relocs-86.d b/ld/testsuite/ld-aarch64/emit-relocs-86.d
index c0f5aca..0047785 100644
--- a/ld/testsuite/ld-aarch64/emit-relocs-86.d
+++ b/ld/testsuite/ld-aarch64/emit-relocs-86.d
@@ -1,8 +1,8 @@
#source: emit-relocs-86.s
#as: -mabi=ilp32
-#ld: -m aarch64linux32 -e0 --emit-relocs
+#ld: -m [aarch64_choose_ilp32_emul] -e0 --emit-relocs
#objdump: -dr
#...
-00400094 <.text>:
- 400094: 11001134 add w20, w9, #0x4
- 400094: R_AARCH64_P32_TLSLD_ADD_DTPREL_LO12 v2
+.* <\.text>:
+ .*: .* add w20, w9, #0x4
+ .*: R_AARCH64_P32_TLSLD_ADD_DTPREL_LO12 v2
diff --git a/ld/testsuite/ld-aarch64/farcall-b-plt.d b/ld/testsuite/ld-aarch64/farcall-b-plt.d
index 9e2c891..49c82eb 100644
--- a/ld/testsuite/ld-aarch64/farcall-b-plt.d
+++ b/ld/testsuite/ld-aarch64/farcall-b-plt.d
@@ -7,32 +7,32 @@
Disassembly of section .plt:
-.* <foo@plt-0x20>:
+.* <foo@plt.*>:
.*: a9bf7bf0 stp x16, x30, \[sp,#-16\]!
-.*: 90040090 adrp x16, 8010000 <__foo_veneer\+.*>
-.*: f941f611 ldr x17, \[x16,#1000\]
-.*: 910fa210 add x16, x16, #0x3e8
+.*: .* adrp x16, .* <__foo_veneer\+.*>
+.*: .* ldr x17, \[x16,#.*\]
+.*: .* add x16, x16, #.*
.*: d61f0220 br x17
.*: d503201f nop
.*: d503201f nop
.*: d503201f nop
.* <foo@plt>:
-.*: 90040090 adrp x16, 8010000 <__foo_veneer\+.*>
-.*: f941fa11 ldr x17, \[x16,#1008\]
-.*: 910fc210 add x16, x16, #0x3f0
+.*: .* adrp x16, .* <__foo_veneer\+.*>
+.*: .* ldr x17, \[x16,#.*\]
+.*: .* add x16, x16, #.*
.*: d61f0220 br x17
Disassembly of section .text:
.* <_start>:
...
-.*: 14000003 b 80002c8 <__foo_veneer>
+.*: .* b .* <__foo_veneer>
.*: d65f03c0 ret
-.*: 14000007 b 80002e0 <__foo_veneer\+.*>
+.*: .* b .* <__foo_veneer\+.*>
.* <__foo_veneer>:
-.*: 90fc0010 adrp x16, 0 <foo@plt-0x2b0>
-.*: 910ac210 add x16, x16, #0x2b0
+.*: .* adrp x16, 0 <foo@plt.*>
+.*: .* add x16, x16, #.*
.*: d61f0200 br x16
...
diff --git a/ld/testsuite/ld-aarch64/farcall-bl-plt.d b/ld/testsuite/ld-aarch64/farcall-bl-plt.d
index 205a810..457a4fa 100644
--- a/ld/testsuite/ld-aarch64/farcall-bl-plt.d
+++ b/ld/testsuite/ld-aarch64/farcall-bl-plt.d
@@ -7,32 +7,32 @@
Disassembly of section .plt:
-.* <foo@plt-0x20>:
+.* <foo@plt.*>:
.*: a9bf7bf0 stp x16, x30, \[sp,#-16\]!
-.*: 90040090 adrp x16, 8010000 <__foo_veneer\+.*>
-.*: f941f611 ldr x17, \[x16,#1000\]
-.*: 910fa210 add x16, x16, #0x3e8
+.*: .* adrp x16, .* <__foo_veneer\+.*>
+.*: .* ldr x17, \[x16,#.*\]
+.*: .* add x16, x16, #.*
.*: d61f0220 br x17
.*: d503201f nop
.*: d503201f nop
.*: d503201f nop
.* <foo@plt>:
-.*: 90040090 adrp x16, 8010000 <__foo_veneer\+.*>
-.*: f941fa11 ldr x17, \[x16,#1008\]
-.*: 910fc210 add x16, x16, #0x3f0
+.*: .* adrp x16, .* <__foo_veneer\+.*>
+.*: .* ldr x17, \[x16,#.*\]
+.*: .* add x16, x16, #.*
.*: d61f0220 br x17
Disassembly of section .text:
.* <_start>:
...
-.*: 94000003 bl 80002c8 <__foo_veneer>
+.*: .* bl .* <__foo_veneer>
.*: d65f03c0 ret
-.*: 14000007 b 80002e0 <__foo_veneer\+.*>
+.*: .* b .* <__foo_veneer\+.*>
.* <__foo_veneer>:
-.*: 90fc0010 adrp x16, 0 <foo@plt-0x2b0>
-.*: 910ac210 add x16, x16, #0x2b0
+.*: .* adrp x16, 0 <foo@plt.*>
+.*: .* add x16, x16, #.*
.*: d61f0200 br x16
...