From: Alan Modra Date: Wed, 20 Jan 2021 05:30:58 +0000 (+1030) Subject: PowerPC64 synthetic symbols X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=8bd10d6b16de92570336e6026d466ef90e077e6e;p=binutils-gdb.git PowerPC64 synthetic symbols If an assembler trims off unused section symbols there may be no section symbols. This means that testing for the .opd section symbol needs to test both the section name and symbol flags. * elf64-ppc.c (ppc64_elf_get_synthetic_symtab): Don't assume section symbols are present. --- diff --git a/bfd/ChangeLog b/bfd/ChangeLog index c97976dd8b2..f546328ac64 100644 --- a/bfd/ChangeLog +++ b/bfd/ChangeLog @@ -1,3 +1,8 @@ +2021-01-20 Alan Modra + + * elf64-ppc.c (ppc64_elf_get_synthetic_symtab): Don't assume + section symbols are present. + 2021-01-19 Alan Modra * elf64-ppc.c (elf_hash_entry): New inline function. Use diff --git a/bfd/elf64-ppc.c b/bfd/elf64-ppc.c index ed595074b94..f76830b6c42 100644 --- a/bfd/elf64-ppc.c +++ b/bfd/elf64-ppc.c @@ -2299,7 +2299,8 @@ ppc64_elf_get_synthetic_symtab (bfd *abfd, sym->section directly. With separate debug info files, the symbols will be extracted from the debug file while abfd passed to this function is the real binary. */ - if (strcmp (syms[i]->section->name, ".opd") == 0) + if ((syms[i]->flags & BSF_SECTION_SYM) != 0 + && strcmp (syms[i]->section->name, ".opd") == 0) ++i; codesecsym = i;