Delete relocations associatesd with deleted exidx entries.
authorAkihiko Odaki <akihiko.odaki.4i@stu.hosei.ac.jp>
Fri, 23 Sep 2016 15:32:04 +0000 (16:32 +0100)
committerNick Clifton <nickc@redhat.com>
Fri, 23 Sep 2016 15:32:04 +0000 (16:32 +0100)
commit5025eb7c0d87b01507116353b5d63b163d7add3d
tree5ee96f3e2ad11fe3c7c2fd3959bd2cd6f2c7c1c9
parent7c4236c3505d8dca3c6d9c2bc61145fa759bf4ce
Delete relocations associatesd with deleted exidx entries.

PR ld/20595
ld * testsuite/ld-arm/unwind-4.d: Add -q option to linker command
line and -r option to objdump command line.  Match emitted relocs
to make sure that superflous relocs are not generated.

bfd * elf-bfd.h (struct elf_backend_data): Add
elf_backend_count_output_relocs callback to count relocations in
the final output.
* elf-arm.c (elf32_arm_add_relocation): Deleted.
(elf32_arm_write_section): Move additional relocation to emit_relocs.
(elf32_arm_count_output_relocs): New function.
(emit_relocs): New function.
(elf32_arm_emit_relocs): New function.
(elf32_arm_vxworks_emit_relocs): New function.
(elf_backend_emit_relocs): Updated to use the new functions.
(elf_backend_count_output_relocs): New define.
* bfd/elflink.c (bfd_elf_final_link): Do not add additional_reloc_count
to the relocation count.
(_bfd_elf_link_size_reloc_section): Use callback to count the
relocations which will be in output.
(_bfd_elf_default_count_output_relocs): New function.
* bfd/elfxx-target.h (elf_backend_count_output_relocs): New define.
bfd/ChangeLog
bfd/elf-bfd.h
bfd/elf32-arm.c
bfd/elflink.c
bfd/elfxx-target.h
ld/ChangeLog
ld/testsuite/ld-arm/unwind-4.d