From: Szabolcs Nagy Date: Mon, 10 Jun 2019 15:40:54 +0000 (+0100) Subject: aarch64: remove unnecessary loc_hash_table traversal X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=39c05d9435893ed0b51c4b5c8e95fe977b983921;p=binutils-gdb.git aarch64: remove unnecessary loc_hash_table traversal The loc_hash_table should only contain local ifunc symbols. The current code already aborts if there is anything else and for defined ifunc symbols elfNN_aarch64_allocate_dynrelocs is a no-op. bfd/ChangeLog: * elfnn-aarch64.c (elfNN_aarch64_allocate_local_dynrelocs): Remove. (elfNN_aarch64_size_dynamic_sections): Remove loc_hash_table traversal with elfNN_aarch64_allocate_local_dynrelocs. --- diff --git a/bfd/ChangeLog b/bfd/ChangeLog index fa07d3e11c6..e1767fe7949 100644 --- a/bfd/ChangeLog +++ b/bfd/ChangeLog @@ -1,3 +1,9 @@ +2019-06-17 Szabolcs Nagy + + * elfnn-aarch64.c (elfNN_aarch64_allocate_local_dynrelocs): Remove. + (elfNN_aarch64_size_dynamic_sections): Remove loc_hash_table traversal + with elfNN_aarch64_allocate_local_dynrelocs. + 2019-06-14 Szabolcs Nagy * elfnn-aarch64.c: Enable MOVW_PREL relocs for ELF32. diff --git a/bfd/elfnn-aarch64.c b/bfd/elfnn-aarch64.c index ed64e8256c7..ba9e97c1e9b 100644 --- a/bfd/elfnn-aarch64.c +++ b/bfd/elfnn-aarch64.c @@ -8860,25 +8860,6 @@ elfNN_aarch64_allocate_ifunc_dynrelocs (struct elf_link_hash_entry *h, return TRUE; } -/* Allocate space in .plt, .got and associated reloc sections for - local dynamic relocs. */ - -static bfd_boolean -elfNN_aarch64_allocate_local_dynrelocs (void **slot, void *inf) -{ - struct elf_link_hash_entry *h - = (struct elf_link_hash_entry *) *slot; - - if (h->type != STT_GNU_IFUNC - || !h->def_regular - || !h->ref_regular - || !h->forced_local - || h->root.type != bfd_link_hash_defined) - abort (); - - return elfNN_aarch64_allocate_dynrelocs (h, inf); -} - /* Allocate space in .plt, .got and associated reloc sections for local ifunc dynamic relocs. */ @@ -9066,11 +9047,6 @@ elfNN_aarch64_size_dynamic_sections (bfd *output_bfd ATTRIBUTE_UNUSED, elf_link_hash_traverse (&htab->root, elfNN_aarch64_allocate_ifunc_dynrelocs, info); - /* Allocate .plt and .got entries, and space for local symbols. */ - htab_traverse (htab->loc_hash_table, - elfNN_aarch64_allocate_local_dynrelocs, - info); - /* Allocate .plt and .got entries, and space for local ifunc symbols. */ htab_traverse (htab->loc_hash_table, elfNN_aarch64_allocate_local_ifunc_dynrelocs,