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: [PATCH, AARCH64] Added R_AARCH64_GOT_LD_PREL19 reloc implementation


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.


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