[PATCH, AARCH64] Added R_AARCH64_GOT_LD_PREL19 reloc implementation
Chris Schlumberger-Socha
chris.schlumberger-socha@arm.com
Tue Sep 11 14:11:00 GMT 2012
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.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: 0001-Added-R_AARCH64_GOT_LD_PREL19-reloc-implementation.patch
Type: text/x-patch
Size: 18543 bytes
Desc: not available
URL: <https://sourceware.org/pipermail/binutils/attachments/20120911/eb314136/attachment.bin>
More information about the Binutils
mailing list