[PATCH, AARCH64] Added R_AARCH64_GOT_LD_PREL19 reloc implementation
Richard Earnshaw
rearnsha@arm.com
Wed Sep 12 16:27:00 GMT 2012
On 12/09/12 09:59, Richard Earnshaw wrote:
> On 11/09/12 15:11, Chris Schlumberger-Socha wrote:
>> This patch adds support for R_AARCH64_GOT_LD_PREL19 relocation in binutils,
>> which is needed for tiny (PIC) code model.
>>
>> This reloc set a load-literal immediate field to bits 00000000 001FFFFC of
>> G(S)-P (Address of the GOT for symbol S, minus address of the place being
>> relocated). This must be in the range of -2^20 <= G(S)-P < 2^20.
>>
>> Test cases have been added to GAS and LD.
>>
>> Thanks,
>> Chris Socha
>>
>> ChangeLog:
>>
>> 2012-09-11 Chris Schlumberger-Socha <chris.schlumberger-socha@arm.com>
>>
>> bfd/
>>
>> * bfd-in2.h: Regenerated.
>> * elf64-aarch64.c
>> (elf64_aarch64_howto_table): Add R_AARCH64_GOT_LD_PREL19 reloc to HOWTO.
>> (elf64_aarch64_reloc_map): Add reloc entry.
>> (aarch64_resolve_relocation): Likewise.
>> (bfd_elf_aarch64_put_addend): Likewise.
>> (aarch64_reloc_got_type): Likewise.
>> (elf64_aarch64_final_link_relocate): Likewise.
>> (lf64_aarch64_check_relocs): Likewise.
>> (elf64_aarch64_check_relocs): New case for R_AARCH64_ADR_PREL_LO21
>> reloc.
>> * libbfd.h: Regenerated.
>> * reloc.c (R_AARCH64_GOT_LD_PREL19): New reloc.
>>
>> gas/
>>
>> * config/tc-aarch64.c
>> (reloc_table): Add reloc to table entry.
>> (parse_address_main): Add support for #:<reloc_op>:<symbol>.
>> (parse_operands): Check for unused reloc.
>> (md_apply_fix): New case for reloc.
>> (aarch64_force_relocation): Likewise.
>>
>> gas/testsuite
>>
>> * gas/aarch64/reloc-insn.d
>> (BFD_RELOC_AARCH64_GOT_LD_PREL19): Add expected asm for new reloc test.
>> * gas/aarch64/reloc-insn.s
>> (BFD_RELOC_AARCH64_GOT_LD_PREL19): Add test for reloc.
>>
>> include/
>>
>> * elf/aarch64.h (R_AARCH64_GOT_LD_PREL19): New reloc.
>>
>> ld/testsuite
>>
>> * ld-aarch64/aarch64-elf.exp: New reloc tests.
>> * ld-aarch64/emit-relocs-309-low-bad.d: New file. Expected asm for test
>> failure (lower bound overflow).
>> * ld-aarch64/emit-relocs-309-low.d: New file. Expected asm for test
>> success (lower bound).
>> * ld-aarch64/emit-relocs-309-up-bad.d: New file. Expected asm for test
>> failure (upper bound overflow).
>> * ld-aarch64/emit-relocs-309-up.d: New file. Expected asm for test
>> success (upper bound).
>> * ld-aarch64/emit-relocs-309.s: New file. Asm for new reloc tests.
>>
>>
>
> OK.
>
> R.
>
And committed as well.
R.
More information about the Binutils
mailing list