From 593f8f293850551eaf010c0af54015db4da140e8 Mon Sep 17 00:00:00 2001 From: Will Newton Date: Mon, 20 May 2013 13:26:40 +0000 Subject: [PATCH 1/1] bfd/elf64-aarch64.c: Remove dead code. The relocs_copied member is never assigned a non-NULL value, so this code does not appear to be used. bfd/ChangeLog: 2013-05-20 Will Newton * elf64-aarch64.c (elf64_aarch64_link_hash_entry): Remove relocs_copied member. (elf64_aarch64_link_hash_newfunc): Remove initialization of relocs_copied member. (elf64_aarch64_copy_indirect_symbol): Remove code to copy relocs_copied member. --- bfd/ChangeLog | 9 ++++++++ bfd/elf64-aarch64.c | 55 --------------------------------------------- 2 files changed, 9 insertions(+), 55 deletions(-) diff --git a/bfd/ChangeLog b/bfd/ChangeLog index da1ff55dcb..ac877a9028 100644 --- a/bfd/ChangeLog +++ b/bfd/ChangeLog @@ -1,3 +1,12 @@ +2013-05-20 Will Newton + + * elf64-aarch64.c (elf64_aarch64_link_hash_entry): Remove + relocs_copied member. + (elf64_aarch64_link_hash_newfunc): Remove initialization of + relocs_copied member. + (elf64_aarch64_copy_indirect_symbol): Remove code to copy + relocs_copied member. + 2013-05-19 Maciej W. Rozycki * elf32-vax.c (elf_vax_adjust_dynamic_symbol): Convert K&R diff --git a/bfd/elf64-aarch64.c b/bfd/elf64-aarch64.c index aef472f2e8..fe9d5b17c8 100644 --- a/bfd/elf64-aarch64.c +++ b/bfd/elf64-aarch64.c @@ -1730,26 +1730,6 @@ elf64_aarch64_mkobject (bfd *abfd) AARCH64_ELF_DATA); } -/* The AArch64 linker needs to keep track of the number of relocs that it - decides to copy in check_relocs for each symbol. This is so that - it can discard PC relative relocs if it doesn't need them when - linking with -Bsymbolic. We store the information in a field - extending the regular ELF linker hash table. */ - -/* This structure keeps track of the number of relocs we have copied - for a given symbol. */ -struct elf64_aarch64_relocs_copied -{ - /* Next section. */ - struct elf64_aarch64_relocs_copied *next; - /* A section in dynobj. */ - asection *section; - /* Number of relocs copied in this section. */ - bfd_size_type count; - /* Number of PC-relative relocs copied in this section. */ - bfd_size_type pc_count; -}; - #define elf64_aarch64_hash_entry(ent) \ ((struct elf64_aarch64_link_hash_entry *)(ent)) @@ -1769,9 +1749,6 @@ struct elf64_aarch64_link_hash_entry /* Track dynamic relocs copied for this symbol. */ struct elf_dyn_relocs *dyn_relocs; - /* Number of PC relative relocs copied for this symbol. */ - struct elf64_aarch64_relocs_copied *relocs_copied; - /* Since PLT entries have variable size, we need to record the index into .got.plt instead of recomputing it from the PLT offset. */ @@ -1950,7 +1927,6 @@ elf64_aarch64_link_hash_newfunc (struct bfd_hash_entry *entry, if (ret != NULL) { ret->dyn_relocs = NULL; - ret->relocs_copied = NULL; ret->got_type = GOT_UNKNOWN; ret->plt_got_offset = (bfd_vma) - 1; ret->stub_cache = NULL; @@ -2041,37 +2017,6 @@ elf64_aarch64_copy_indirect_symbol (struct bfd_link_info *info, eind->dyn_relocs = NULL; } - if (eind->relocs_copied != NULL) - { - if (edir->relocs_copied != NULL) - { - struct elf64_aarch64_relocs_copied **pp; - struct elf64_aarch64_relocs_copied *p; - - /* Add reloc counts against the indirect sym to the direct sym - list. Merge any entries against the same section. */ - for (pp = &eind->relocs_copied; (p = *pp) != NULL;) - { - struct elf64_aarch64_relocs_copied *q; - - for (q = edir->relocs_copied; q != NULL; q = q->next) - if (q->section == p->section) - { - q->pc_count += p->pc_count; - q->count += p->count; - *pp = p->next; - break; - } - if (q == NULL) - pp = &p->next; - } - *pp = edir->relocs_copied; - } - - edir->relocs_copied = eind->relocs_copied; - eind->relocs_copied = NULL; - } - if (ind->root.type == bfd_link_hash_indirect) { /* Copy over PLT info. */ -- 2.34.1