Comment 19 for bug 1746765

Revision history for this message
In , Cvs-commit (cvs-commit) wrote :

The master branch has been updated by Renlin Li <email address hidden>:

https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;h=279b2f94168ee91e02ccd070d27c983fc001fe12

commit 279b2f94168ee91e02ccd070d27c983fc001fe12
Author: Renlin Li <email address hidden>
Date: Sat Feb 3 13:18:17 2018 +0000

    [PR22764][LD][AARCH64]Allow R_AARCH64_ABS16 and R_AARCH64_ABS32 against absolution symbol or undefine symbol in shared object.

    The assumption that R_AARCH64_ABS16 and R_AARCH64_ABS32 relocation in LP64 abi
    will be used to generate an address does not hold for absolute symbol.
    In this case, it is a value fixed at static linking time.

    The condition to check the relocations is relax to allow absolute symbol and
    undefined symbol case.

    bfd/

    2018-02-05 Renlin Li <email address hidden>

     PR ld/22764
     * elfnn-aarch64.c (elfNN_aarch64_check_relocs): Relax the
     R_AARCH64_ABS32 and R_AARCH64_ABS16 for absolute symbol. Apply the
     check for writeable section as well.

    ld/

    2018-02-05 Renlin Li <email address hidden>

     PR ld/22764
     * testsuite/ld-aarch64/emit-relocs-258.s: Define symbol as an address.
     * testsuite/ld-aarch64/emit-relocs-259.s: Likewise.
     * testsuite/ld-aarch64/aarch64-elf.exp: Run new test.
     * testsuite/ld-aarch64/pr22764.s: New.
     * testsuite/ld-aarch64/pr22764.d: New.