This is the mail archive of the binutils@sourceware.org mailing list for the binutils project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [gold][aarch64] PR gold/19163: zero-out ABS64/32/16/ in .rela.dyn.


Oh, forgot to add gold/ChangeLog -

2015-10-26  Han Shen  <shenhan@google.com>

        PR gold/19163 - zero out ABS64/32/16 in .rela.dyn.

        * aarch64.cc (AArch64_relobj::ZeroOutRecord): New data struct.
        (AArch64_relobj::zero_out_list_): New member.
        (AArch64_relobj::ZeroOutIter): New typedef.
        (AArch64_relobj::ZeroOutList): Likewise.
        (AArch64_relobj::zero_out_relocs): New method.
        (AArch64_relobj::do_relocate_sections): Add hook to call
        zero_out_relocs.
        (AArch64_relocate_functions::zero_out): New helper method.
        (Target_aarch64::Scan::global): Record global symbols that are
        added to .rela.dyn.

On Mon, Oct 26, 2015 at 4:53 PM, Han Shen <shenhan@google.com> wrote:
> Hi Cary, this is the patch to fix PR gold/19163 (and gold/19169).
>
> Android bionic dynamic linker has bugs dealing with ABS64/32/16 in the
> .rela.dyn section. It was fixed last week here -
> https://android-review.googlesource.com/#/c/176902/2/linker/linker.cpp
>
> The problem here is that that L and M release will still have this
> bug. So here is the patch to zero out the relocation values in these
> affected relocs (AARCH64_ABS64/32/16).
>
> Tested - build O2/O0 on x86_64 machine. build O2 on aarch64 machine.
>               passed gold dev unit test cases.
>               manually checked the value in .rela.dyn, so that ABSxx
> are all zero.
>               manually verified case in PR gold/19169
>
>
> Ok for trunk?
>
> Thanks,
> Han



-- 
Han Shen |  Software Engineer |  shenhan@google.com |  +1-650-440-3330


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]