bfd/elf64-aarch64.c: Remove dead code.
authorWill Newton <willnewton@sourceware.org>
Mon, 20 May 2013 13:26:40 +0000 (13:26 +0000)
committerWill Newton <willnewton@sourceware.org>
Mon, 20 May 2013 13:26:40 +0000 (13:26 +0000)
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  <will.newton@linaro.org>

* 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
bfd/elf64-aarch64.c

index da1ff55dcb9dc072531a9d4ff1d8cb498c8033e4..ac877a9028a0645855b95e90f357c0a148f7f10c 100644 (file)
@@ -1,3 +1,12 @@
+2013-05-20  Will Newton  <will.newton@linaro.org>
+
+       * 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  <macro@linux-mips.org>
 
        * elf32-vax.c (elf_vax_adjust_dynamic_symbol): Convert K&R
index aef472f2e8bc017e376756e1a7626c8371b249c0..fe9d5b17c8ed2167c15e3b3aed87a173d32679f9 100644 (file)
@@ -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.  */