AArch64 testsuite failures

Jiong Wang jiong.wang@arm.com
Wed Aug 12 11:00:00 GMT 2015


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

-------------- next part --------------
A non-text attachment was scrubbed...
Name: k.patch
Type: text/x-diff
Size: 4567 bytes
Desc: not available
URL: <https://sourceware.org/pipermail/binutils/attachments/20150812/883096aa/attachment.bin>


More information about the Binutils mailing list