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.
This commit is contained in:
Alan Modra 2021-01-20 16:00:58 +10:30
parent 11321a0505
commit 8bd10d6b16
2 changed files with 7 additions and 1 deletions

View File

@ -1,3 +1,8 @@
2021-01-20 Alan Modra <amodra@gmail.com>
* elf64-ppc.c (ppc64_elf_get_synthetic_symtab): Don't assume
section symbols are present.
2021-01-19 Alan Modra <amodra@gmail.com>
* elf64-ppc.c (elf_hash_entry): New inline function. Use

View File

@ -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;