From 8400d40d954ec3b4a3fe9200645a1b6e90ba46f4 Mon Sep 17 00:00:00 2001 From: Alan Modra Date: Sat, 3 Dec 2016 20:57:27 +1030 Subject: [PATCH] Indirect and warning symbols It's possible but unlikely that an indirect symbol points at a warning symbol. * elf64-ppc.c (add_symbol_adjust): Correct order of tests for warning and indirect symbols. --- bfd/ChangeLog | 5 +++++ bfd/elf64-ppc.c | 6 +++--- 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/bfd/ChangeLog b/bfd/ChangeLog index 84ac6c0e3a2..7ec26b01b97 100644 --- a/bfd/ChangeLog +++ b/bfd/ChangeLog @@ -1,3 +1,8 @@ +2016-12-03 Alan Modra + + * elf64-ppc.c (add_symbol_adjust): Correct order of tests for + warning and indirect symbols. + 2016-12-03 Alan Modra * elf64-ppc.c (ppc64_elf_copy_indirect_symbol): Don't copy dynamic diff --git a/bfd/elf64-ppc.c b/bfd/elf64-ppc.c index bfdfc09cc80..d7d6adb9342 100644 --- a/bfd/elf64-ppc.c +++ b/bfd/elf64-ppc.c @@ -5063,12 +5063,12 @@ add_symbol_adjust (struct ppc_link_hash_entry *eh, struct bfd_link_info *info) struct ppc_link_hash_table *htab; struct ppc_link_hash_entry *fdh; - if (eh->elf.root.type == bfd_link_hash_indirect) - return TRUE; - if (eh->elf.root.type == bfd_link_hash_warning) eh = (struct ppc_link_hash_entry *) eh->elf.root.u.i.link; + if (eh->elf.root.type == bfd_link_hash_indirect) + return TRUE; + if (eh->elf.root.root.string[0] != '.') abort (); -- 2.30.2