2000-06-05 H.J. Lu <hjl@gnu.org>

* 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.
This commit is contained in:
H.J. Lu 2000-06-05 17:21:32 +00:00
parent e06cae3665
commit 94b6c40a1a
2 changed files with 12 additions and 4 deletions

View File

@ -1,3 +1,10 @@
2000-06-05 H.J. Lu <hjl@gnu.org>
* 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 <jtc@redback.com>
* config.bfd (i[3456]86-*-netbsdelf*): New target.

View File

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