Message ID | 5190D5BB.3040601@linaro.org |
---|---|
State | Accepted |
Headers | show |
On 13 May 2013 12:59, Will Newton <will.newton@linaro.org> wrote: > > The relocs_copied member is never assigned a non-NULL value, so > this code does not appear to be used. > > 2013-05-13 Will Newton <will.newton@linaro.org> > > * bfd/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/elf64-aarch64.c | 55 ----------------------------------------------------- > 1 file changed, 55 deletions(-) Ping? -- Will Newton Toolchain Working Group, Linaro
Looks OK to me (but I cannot approve it). Yufeng On 05/20/13 09:20, Will Newton wrote: > On 13 May 2013 12:59, Will Newton<will.newton@linaro.org> wrote: >> >> The relocs_copied member is never assigned a non-NULL value, so >> this code does not appear to be used. >> >> 2013-05-13 Will Newton<will.newton@linaro.org> >> >> * bfd/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/elf64-aarch64.c | 55 ----------------------------------------------------- >> 1 file changed, 55 deletions(-) > > Ping? > > -- > Will Newton > Toolchain Working Group, Linaro >
OK /Marcus On 13 May 2013 12:59, Will Newton <will.newton@linaro.org> wrote: > > The relocs_copied member is never assigned a non-NULL value, so > this code does not appear to be used. > > 2013-05-13 Will Newton <will.newton@linaro.org> > > * bfd/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/elf64-aarch64.c | 55 ----------------------------------------------------- > 1 file changed, 55 deletions(-) > > diff --git a/bfd/elf64-aarch64.c b/bfd/elf64-aarch64.c > index e3cae95..4a9dda5 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. */ > -- > 1.8.1.4 >
Thanks, applied. On 20 May 2013 14:16, Marcus Shawcroft <marcus.shawcroft@gmail.com> wrote: > OK > /Marcus > > On 13 May 2013 12:59, Will Newton <will.newton@linaro.org> wrote: >> >> The relocs_copied member is never assigned a non-NULL value, so >> this code does not appear to be used. >> >> 2013-05-13 Will Newton <will.newton@linaro.org> >> >> * bfd/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/elf64-aarch64.c | 55 ----------------------------------------------------- >> 1 file changed, 55 deletions(-) >> >> diff --git a/bfd/elf64-aarch64.c b/bfd/elf64-aarch64.c >> index e3cae95..4a9dda5 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. */ >> -- >> 1.8.1.4 >>
diff --git a/bfd/elf64-aarch64.c b/bfd/elf64-aarch64.c index e3cae95..4a9dda5 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. */