diff options
author | Alan Modra <amodra@gmail.com> | 2022-09-10 12:58:44 +0930 |
---|---|---|
committer | Alan Modra <amodra@gmail.com> | 2022-09-14 10:19:56 +0930 |
commit | 365bf300da35c11e27bb8cdd3964f82e3d32f094 (patch) | |
tree | bed18aa3fe970f3810ef06691cf0c2263616d992 /bfd/elf32-ppc.c | |
parent | 620fe928315c5eb95b990c13b92273865501e50e (diff) | |
download | gdb-365bf300da35c11e27bb8cdd3964f82e3d32f094.zip gdb-365bf300da35c11e27bb8cdd3964f82e3d32f094.tar.gz gdb-365bf300da35c11e27bb8cdd3964f82e3d32f094.tar.bz2 |
PR29540, R_PPC64_NONE in .rela.dyn when linking Linux vdso
PR 29540
* elf64-ppc.c (allocate_dynrelocs): Don't alloc space for relocs
against discarded sections.
(ppc64_elf_size_dynamic_sections): Use standard test for discarded
sections.
* elf32-ppc.c (allocate_dynrelocs): Don't alloc space for relocs
against discarded sections.
(ppc_elf_size_dynamic_sections): Use standard test for discarded
sections.
Diffstat (limited to 'bfd/elf32-ppc.c')
-rw-r--r-- | bfd/elf32-ppc.c | 16 |
1 files changed, 8 insertions, 8 deletions
diff --git a/bfd/elf32-ppc.c b/bfd/elf32-ppc.c index 1f77e18..0eebadc 100644 --- a/bfd/elf32-ppc.c +++ b/bfd/elf32-ppc.c @@ -5268,12 +5268,13 @@ allocate_dynrelocs (struct elf_link_hash_entry *h, void *inf) /* Allocate space. */ for (p = h->dyn_relocs; p != NULL; p = p->next) - { - asection *sreloc = elf_section_data (p->sec)->sreloc; - if (eh->elf.type == STT_GNU_IFUNC) - sreloc = htab->elf.irelplt; - sreloc->size += p->count * sizeof (Elf32_External_Rela); - } + if (!discarded_section (p->sec)) + { + asection *sreloc = elf_section_data (p->sec)->sreloc; + if (eh->elf.type == STT_GNU_IFUNC) + sreloc = htab->elf.irelplt; + sreloc->size += p->count * sizeof (Elf32_External_Rela); + } /* Handle PLT relocs. Done last, after dynindx has settled. We might need a PLT entry when the symbol @@ -5535,8 +5536,7 @@ ppc_elf_size_dynamic_sections (bfd *output_bfd, p != NULL; p = p->next) { - if (!bfd_is_abs_section (p->sec) - && bfd_is_abs_section (p->sec->output_section)) + if (discarded_section (p->sec)) { /* Input section has been discarded, either because it is a copy of a linkonce section or due to |