PR28523, ld.bfd created undefined symbols on ppc64
authorAlan Modra <amodra@gmail.com>
Tue, 2 Nov 2021 08:31:06 +0000 (19:01 +1030)
committerAlan Modra <amodra@gmail.com>
Wed, 3 Nov 2021 00:16:29 +0000 (10:46 +1030)
commita442059f66075e4e503c43b119cc8b7de04e5718
tree7e3791fb77f3d3d4d6903a7a47c657b9b02e1319
parentb480ee76e4a94317459e6ee91b48fd32fd883e30
PR28523, ld.bfd created undefined symbols on ppc64

This patch removes any fake (linker created) function descriptor
symbol if its code entry symbol isn't dynamic, to ensure bogus dynamic
symbols are not created.  The change to func_desc_adjust requires that
it be run only once, which means ppc64_elf_tls_setup can't call it for
just a few selected symbols.

PR 28523
* elf64-ppc.c (func_desc_adjust): If a function entry sym is
not dynamic and has no plt entry, hide any associated fake
function descriptor symbol.
(ppc64_elf_edit): Move func_desc_adjust iteration over syms to..
(ppc64_elf_tls_setup): ..here.
bfd/elf64-ppc.c