2012-09-11 Chris Schlumberger-Socha <chris.schlumberger-socha@arm.com>
authorRichard Earnshaw <richard.earnshaw@arm.com>
Wed, 12 Sep 2012 16:25:51 +0000 (16:25 +0000)
committerRichard Earnshaw <richard.earnshaw@arm.com>
Wed, 12 Sep 2012 16:25:51 +0000 (16:25 +0000)
commitf41aef5f6e10edcded9a747dc2bdc9832b940dc7
tree0bf2b26ce0a0a473aa97b09e7a195ce29ab6d155
parenta67fa328adaa260bc9293d4ea9058e12e2176cbc
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.
17 files changed:
bfd/ChangeLog
bfd/elf64-aarch64.c
bfd/reloc.c
gas/ChangeLog
gas/config/tc-aarch64.c
gas/testsuite/ChangeLog
gas/testsuite/gas/aarch64/reloc-insn.d
gas/testsuite/gas/aarch64/reloc-insn.s
include/ChangeLog
include/elf/aarch64.h
ld/testsuite/ChangeLog
ld/testsuite/ld-aarch64/aarch64-elf.exp
ld/testsuite/ld-aarch64/emit-relocs-309-low-bad.d [new file with mode: 0644]
ld/testsuite/ld-aarch64/emit-relocs-309-low.d [new file with mode: 0644]
ld/testsuite/ld-aarch64/emit-relocs-309-up-bad.d [new file with mode: 0644]
ld/testsuite/ld-aarch64/emit-relocs-309-up.d [new file with mode: 0644]
ld/testsuite/ld-aarch64/emit-relocs-309.s [new file with mode: 0644]