[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