This is the mail archive of the
binutils@sourceware.org
mailing list for the binutils project.
Re: status of gold for ARM
- From: Doug Kwan (éæå) <dougkwan at google dot com>
- To: Roland McGrath <mcgrathr at google dot com>
- Cc: Cary Coutant <ccoutant at gmail dot com>, "binutils at sourceware dot org" <binutils at sourceware dot org>
- Date: Wed, 8 Jul 2015 12:30:03 -0700
- Subject: Re: status of gold for ARM
- Authentication-results: sourceware.org; auth=none
- References: <CAB=4xhormp=tpt1+y983a_PEuqs2ig=8tk2=QYbO8KmiqwE6Mw at mail dot gmail dot com> <CAJimCsE_bx35fvi4bQwRNzsiYmw+Rb=48LzQrEuavKyRP96f-g at mail dot gmail dot com> <CAH9SEo4OjrZqQ7NYaje2RCM7VXKgh6gdg_g1rMPpFGNH47kVkg at mail dot gmail dot com> <CAB=4xhpG0-yLWGMNBfMrj6sZKMLdpwTkZfpCw1U_DwEd8+ViGg at mail dot gmail dot com>
Yes, I am aware of the remaining issue with 2.25 after back porting
the alignment fix from main. I will fix the regexs ASAP.
On Wed, Jul 8, 2015 at 11:18 AM, Roland McGrath <mcgrathr@google.com> wrote:
> The trunk is now good but on binutils-2_25-branch (eddde7f) I am now getting:
> FAIL: arm_unaligned_reloc.sh
>
> Make sure you do clean builds to compare. The actual problem comes from
> objdump treating gold/testsuite/arm_unaligned_reloc_r differently for the
> two branches. In fact, objdump is behaving the same (odd) way in both
> branches, but its output differs (for no good reason) between the files
> generated in the two branches. The real difference is in the assembler,
> which in 2.25 produces .data.0 and .data.1 sections with just their
> explicit sizes (4, 13), while in the trunk it produces .data.0 and .data.1
> sections that are padded out to their sh_addralign sizes (both 4096).
>
> For the unpadded sections (arm_unaligned_reloc_r from 2.25), objdump -Dr
> produces:
> Disassembly of section .data.0:
>
> 00000000 <x>:
> 0: 00000001 andeq r0, r0, r1
> ...
>
> Disassembly of section .data.1:
>
> 00000000 <padding>:
> ...
>
> 00000001 <abs32>:
> * 1: 00000000 andeq r0, r0, r0
> 1: R_ARM_ABS32 .data.0
>
> 00000005 <rel32>:
> * 5: 00000000 andeq r0, r0, r0
> 5: R_ARM_REL32 .data.0
>
> 00000009 <abs16>:
> ** ...
> 9: R_ARM_ABS16 .data.0
>
> whereas for the padded sections (arm_unaligned_reloc_r from trunk), the
> same objdump -Dr produces:
> Disassembly of section .data.0:
>
> 00000000 <x>:
> 0: 00000001 andeq r0, r0, r1
>
> Disassembly of section .data.1:
>
> 00000000 <padding>:
> ...
>
> 00000001 <abs32>:
> * 1: 00000000 andeq r0, r0, r0
> 1: R_ARM_ABS32 .data.0
>
> 00000005 <rel32>:
> * 5: 00000000 andeq r0, r0, r0
> 5: R_ARM_REL32 .data.0
>
> 00000009 <abs16>:
> ** 9: 00000000 andeq r0, r0, r0
> 9: R_ARM_ABS16 .data.0
>
> The differences are the indentation on the lines marked with *, and the
> choice of disassembling a zero word vs "..." on the line marked with **.
> I don't know why objdump does that, or if it's intended to.
>
> I don't know if that difference in the assembler was an intended change on
> the trunk or not.
>
> Regardless, none it actually has anything to do with what's being tested in
> gold. As things stand, arm_unaligned_reloc.sh is also inconsistent between
> disassembly lines and reloc lines as to whether it matches the indentation
> precisely or loosely. So its regexps could just be changed to be looser
> about its matching and then these details of gas and objdump behavior would
> not affect the gold test suite one way or the other.
>
>
> Thanks,
> Roland