From: H.J. Lu Date: Mon, 5 Jun 2000 17:21:32 +0000 (+0000) Subject: 2000-06-05 H.J. Lu X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=94b6c40a1afad9d51ec6f7c4d6c55dd55e5ccbf6;p=binutils-gdb.git 2000-06-05 H.J. Lu * elflink.h (elf_fix_symbol_flags): Follow the link for the indirect symbol for the ELF_LINK_NON_ELF bit. (elf_link_output_extsym): Don't output the indirect symbol even if the ELF_LINK_NON_ELF bit is set. --- diff --git a/bfd/ChangeLog b/bfd/ChangeLog index a9befba0744..4d07a187df2 100644 --- a/bfd/ChangeLog +++ b/bfd/ChangeLog @@ -1,3 +1,10 @@ +2000-06-05 H.J. Lu + + * elflink.h (elf_fix_symbol_flags): Follow the link for the + indirect symbol for the ELF_LINK_NON_ELF bit. + (elf_link_output_extsym): Don't output the indirect symbol even + if the ELF_LINK_NON_ELF bit is set. + 2000-06-01 J.T. Conklin * config.bfd (i[3456]86-*-netbsdelf*): New target. diff --git a/bfd/elflink.h b/bfd/elflink.h index d09ad172a2b..a1390d30b2d 100644 --- a/bfd/elflink.h +++ b/bfd/elflink.h @@ -3289,6 +3289,9 @@ elf_fix_symbol_flags (h, eif) an ELF dynamic object. */ if ((h->elf_link_hash_flags & ELF_LINK_NON_ELF) != 0) { + while (h->root.type == bfd_link_hash_indirect) + h = (struct elf_link_hash_entry *) h->root.u.i.link; + if (h->root.type != bfd_link_hash_defined && h->root.type != bfd_link_hash_defweak) h->elf_link_hash_flags |= (ELF_LINK_HASH_REF_REGULAR @@ -5030,10 +5033,8 @@ elf_link_output_extsym (h, data) symbol foo@@GNU_1.2 is the default, which should be used when foo is used with no version, then we add an indirect symbol foo which points to foo@@GNU_1.2. We ignore these symbols, - since the indirected symbol is already in the hash table. If - the indirect symbol is non-ELF, fall through and output it. */ - if ((h->elf_link_hash_flags & ELF_LINK_NON_ELF) == 0) - return true; + since the indirected symbol is already in the hash table. */ + return true; /* Fall through. */ case bfd_link_hash_warning: