diff options
author | Alan Modra <amodra@gmail.com> | 2018-02-21 21:47:07 +1030 |
---|---|---|
committer | Alan Modra <amodra@gmail.com> | 2018-02-26 09:28:27 +1030 |
commit | 0aa13feeeb78fc9323bee329c4d91c30f25de121 (patch) | |
tree | 4df9139ef73182bdeb894c97be4c09b3364cc337 /bfd/elfnn-aarch64.c | |
parent | cf97bcb0c3f33460e9cfa57a2890df1c38a497d7 (diff) | |
download | binutils-gdb-0aa13feeeb78fc9323bee329c4d91c30f25de121.tar.gz |
unrecognized/unsupported reloc message
It must get boring translating all the variants we have of
unrecognized/unsupported/invalid/unexpected reloc number. This patch
cuts down on the number of variations.
* aoutx.h, * coff-alpha.c, * coff-i860.c, * coff-m68k.c,
* coff-mcore.c, * coff-ppc.c, * coff-rs6000.c, * coff-sh.c,
* coff-tic4x.c, * coff-tic54x.c, * coff-tic80.c, * coff-w65.c,
* elf-bfd.h, * elf-m10300.c, * elf.c, * elf32-avr.c, * elf32-bfin.c,
* elf32-cr16.c, * elf32-cr16c.c, * elf32-cris.c, * elf32-crx.c,
* elf32-d10v.c, * elf32-d30v.c, * elf32-dlx.c, * elf32-epiphany.c,
* elf32-fr30.c, * elf32-frv.c, * elf32-i370.c, * elf32-i386.c,
* elf32-i960.c, * elf32-ip2k.c, * elf32-iq2000.c, * elf32-lm32.c,
* elf32-m32c.c, * elf32-m32r.c, * elf32-m68hc11.c, * elf32-m68hc12.c,
* elf32-m68k.c, * elf32-mcore.c, * elf32-mep.c, * elf32-metag.c,
* elf32-microblaze.c, * elf32-mips.c, * elf32-moxie.c,
* elf32-msp430.c, * elf32-mt.c, * elf32-nds32.c, * elf32-or1k.c,
* elf32-pj.c, * elf32-ppc.c, * elf32-rl78.c, * elf32-rx.c,
* elf32-s390.c, * elf32-sh.c, * elf32-spu.c, * elf32-tic6x.c,
* elf32-v850.c, * elf32-vax.c, * elf32-visium.c, * elf32-wasm32.c,
* elf32-xgate.c, * elf32-xtensa.c, * elf64-alpha.c,
* elf64-ia64-vms.c, * elf64-mips.c, * elf64-mmix.c,
* elf64-ppc.c, * elf64-s390.c, * elf64-sparc.c, * elf64-x86-64.c,
* elfn32-mips.c, * elfnn-aarch64.c, * elfnn-ia64.c,
* elfnn-riscv.c, * elfxx-mips.c, * elfxx-riscv.c, * elfxx-riscv.h,
* elfxx-sparc.c, * elfxx-sparc.h, * reloc.c: Standardize
unrecognized/unsupported reloc message.
Diffstat (limited to 'bfd/elfnn-aarch64.c')
-rw-r--r-- | bfd/elfnn-aarch64.c | 30 |
1 files changed, 16 insertions, 14 deletions
diff --git a/bfd/elfnn-aarch64.c b/bfd/elfnn-aarch64.c index e1797b39930..638ee1547db 100644 --- a/bfd/elfnn-aarch64.c +++ b/bfd/elfnn-aarch64.c @@ -1972,7 +1972,7 @@ elfNN_aarch64_bfd_reloc_from_howto (reloc_howto_type *howto) /* Given R_TYPE, return the bfd internal relocation enumerator. */ static bfd_reloc_code_real_type -elfNN_aarch64_bfd_reloc_from_type (unsigned int r_type) +elfNN_aarch64_bfd_reloc_from_type (bfd *abfd, unsigned int r_type) { static bfd_boolean initialized_p = FALSE; /* Indexed by R_TYPE, values are offsets in the howto_table. */ @@ -1995,7 +1995,8 @@ elfNN_aarch64_bfd_reloc_from_type (unsigned int r_type) /* PR 17512: file: b371e70a. */ if (r_type >= R_AARCH64_end) { - _bfd_error_handler (_("Invalid AArch64 reloc number: %d"), r_type); + _bfd_error_handler (_("%pB: unsupported relocation type %#x"), + abfd, r_type); bfd_set_error (bfd_error_bad_value); return BFD_RELOC_AARCH64_NONE; } @@ -2054,7 +2055,7 @@ elfNN_aarch64_howto_from_bfd_reloc (bfd_reloc_code_real_type code) } static reloc_howto_type * -elfNN_aarch64_howto_from_type (unsigned int r_type) +elfNN_aarch64_howto_from_type (bfd *abfd, unsigned int r_type) { bfd_reloc_code_real_type val; reloc_howto_type *howto; @@ -2070,7 +2071,7 @@ elfNN_aarch64_howto_from_type (unsigned int r_type) if (r_type == R_AARCH64_NONE) return &elfNN_aarch64_howto_none; - val = elfNN_aarch64_bfd_reloc_from_type (r_type); + val = elfNN_aarch64_bfd_reloc_from_type (abfd, r_type); howto = elfNN_aarch64_howto_from_bfd_reloc (val); if (howto != NULL) @@ -2081,13 +2082,13 @@ elfNN_aarch64_howto_from_type (unsigned int r_type) } static void -elfNN_aarch64_info_to_howto (bfd *abfd ATTRIBUTE_UNUSED, arelent *bfd_reloc, +elfNN_aarch64_info_to_howto (bfd *abfd, arelent *bfd_reloc, Elf_Internal_Rela *elf_reloc) { unsigned int r_type; r_type = ELFNN_R_TYPE (elf_reloc->r_info); - bfd_reloc->howto = elfNN_aarch64_howto_from_type (r_type); + bfd_reloc->howto = elfNN_aarch64_howto_from_type (abfd, r_type); } static reloc_howto_type * @@ -2727,11 +2728,11 @@ aarch64_relocate (unsigned int r_type, bfd *input_bfd, asection *input_section, reloc_howto_type *howto; bfd_vma place; - howto = elfNN_aarch64_howto_from_type (r_type); + howto = elfNN_aarch64_howto_from_type (input_bfd, r_type); place = (input_section->output_section->vma + input_section->output_offset + offset); - r_type = elfNN_aarch64_bfd_reloc_from_type (r_type); + r_type = elfNN_aarch64_bfd_reloc_from_type (input_bfd, r_type); value = _bfd_aarch64_elf_resolve_relocation (r_type, place, value, 0, FALSE); return _bfd_aarch64_elf_put_addend (input_bfd, input_section->contents + offset, r_type, @@ -4708,7 +4709,7 @@ aarch64_tls_transition (bfd *input_bfd, unsigned long r_symndx) { bfd_reloc_code_real_type bfd_r_type - = elfNN_aarch64_bfd_reloc_from_type (r_type); + = elfNN_aarch64_bfd_reloc_from_type (input_bfd, r_type); if (! aarch64_can_relax_tls (input_bfd, info, bfd_r_type, h, r_symndx)) return bfd_r_type; @@ -5793,7 +5794,7 @@ elfNN_aarch64_tls_relax (struct elf_aarch64_link_hash_table *globals, BFD_ASSERT (globals && input_bfd && contents && rel); - switch (elfNN_aarch64_bfd_reloc_from_type (r_type)) + switch (elfNN_aarch64_bfd_reloc_from_type (input_bfd, r_type)) { case BFD_RELOC_AARCH64_TLSDESC_ADR_PAGE21: case BFD_RELOC_AARCH64_TLSGD_ADR_PAGE21: @@ -6215,7 +6216,8 @@ elfNN_aarch64_relocate_section (bfd *output_bfd, r_symndx = ELFNN_R_SYM (rel->r_info); r_type = ELFNN_R_TYPE (rel->r_info); - howto = bfd_reloc.howto = elfNN_aarch64_howto_from_type (r_type); + bfd_reloc.howto = elfNN_aarch64_howto_from_type (input_bfd, r_type); + howto = bfd_reloc.howto; if (howto == NULL) return _bfd_unrecognized_reloc (input_bfd, input_section, r_type); @@ -6343,7 +6345,7 @@ elfNN_aarch64_relocate_section (bfd *output_bfd, h, &unresolved_reloc, save_addend, &addend, sym); - switch (elfNN_aarch64_bfd_reloc_from_type (r_type)) + switch (elfNN_aarch64_bfd_reloc_from_type (input_bfd, r_type)) { case BFD_RELOC_AARCH64_TLSGD_ADD_LO12_NC: case BFD_RELOC_AARCH64_TLSGD_ADR_PAGE21: @@ -6386,7 +6388,7 @@ elfNN_aarch64_relocate_section (bfd *output_bfd, bfd_elfNN_swap_reloca_out (output_bfd, &rela, loc); bfd_reloc_code_real_type real_type = - elfNN_aarch64_bfd_reloc_from_type (r_type); + elfNN_aarch64_bfd_reloc_from_type (input_bfd, r_type); if (real_type == BFD_RELOC_AARCH64_TLSLD_ADR_PREL21 || real_type == BFD_RELOC_AARCH64_TLSLD_ADR_PAGE21 @@ -6581,7 +6583,7 @@ elfNN_aarch64_relocate_section (bfd *output_bfd, if (r != bfd_reloc_ok && r != bfd_reloc_continue) { bfd_reloc_code_real_type real_r_type - = elfNN_aarch64_bfd_reloc_from_type (r_type); + = elfNN_aarch64_bfd_reloc_from_type (input_bfd, r_type); switch (r) { |