2000-06-05 H.J. Lu <hjl@gnu.org>
authorH.J. Lu <hjl.tools@gmail.com>
Mon, 5 Jun 2000 17:21:32 +0000 (17:21 +0000)
committerH.J. Lu <hjl.tools@gmail.com>
Mon, 5 Jun 2000 17:21:32 +0000 (17:21 +0000)
* 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.

bfd/ChangeLog
bfd/elflink.h

index a9befba0744c7436cc46985fbb9d7105d1be531b..4d07a187df2d8227aa4da39b327949976be990e3 100644 (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.
index d09ad172a2ba28b801bf5d6507d23d26b3ece89a..a1390d30b2dfba222f2cade1613dea5bc756c23f 100644 (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: