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:
parent
e06cae3665
commit
94b6c40a1a
|
@ -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>
|
2000-06-01 J.T. Conklin <jtc@redback.com>
|
||||||
|
|
||||||
* config.bfd (i[3456]86-*-netbsdelf*): New target.
|
* config.bfd (i[3456]86-*-netbsdelf*): New target.
|
||||||
|
|
|
@ -3289,6 +3289,9 @@ elf_fix_symbol_flags (h, eif)
|
||||||
an ELF dynamic object. */
|
an ELF dynamic object. */
|
||||||
if ((h->elf_link_hash_flags & ELF_LINK_NON_ELF) != 0)
|
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
|
if (h->root.type != bfd_link_hash_defined
|
||||||
&& h->root.type != bfd_link_hash_defweak)
|
&& h->root.type != bfd_link_hash_defweak)
|
||||||
h->elf_link_hash_flags |= (ELF_LINK_HASH_REF_REGULAR
|
h->elf_link_hash_flags |= (ELF_LINK_HASH_REF_REGULAR
|
||||||
|
@ -5030,9 +5033,7 @@ elf_link_output_extsym (h, data)
|
||||||
symbol foo@@GNU_1.2 is the default, which should be used when
|
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 is used with no version, then we add an indirect symbol
|
||||||
foo which points to foo@@GNU_1.2. We ignore these symbols,
|
foo which points to foo@@GNU_1.2. We ignore these symbols,
|
||||||
since the indirected symbol is already in the hash table. If
|
since the indirected symbol is already in the hash table. */
|
||||||
the indirect symbol is non-ELF, fall through and output it. */
|
|
||||||
if ((h->elf_link_hash_flags & ELF_LINK_NON_ELF) == 0)
|
|
||||||
return true;
|
return true;
|
||||||
|
|
||||||
/* Fall through. */
|
/* Fall through. */
|
||||||
|
|
Loading…
Reference in New Issue