PR ld/815
authorAlan Modra <amodra@gmail.com>
Fri, 15 Apr 2005 03:42:46 +0000 (03:42 +0000)
committerAlan Modra <amodra@gmail.com>
Fri, 15 Apr 2005 03:42:46 +0000 (03:42 +0000)
* elflink.c (elf_smash_syms): Clear undef.next if it's not being
used as a list pointer.

bfd/ChangeLog
bfd/elflink.c

index 6b3c567..84405e1 100644 (file)
@@ -1,3 +1,9 @@
+2005-04-15  Alan Modra  <amodra@bigpond.net.au>
+
+       PR ld/815
+       * elflink.c (elf_smash_syms): Clear undef.next if it's not being
+       used as a list pointer.
+
 2005-04-14  Alan Modra  <amodra@bigpond.net.au>
 
        * Makefile.am (NO_WERROR): Define.
index 09d0616..017ebe4 100644 (file)
@@ -2935,8 +2935,11 @@ elf_smash_syms (struct elf_link_hash_entry *h, void *data)
   if (h->ref_regular)
     abort ();
 
-  /* Set sym back to newly created state, but keep undefs list pointer.  */
+  /* Set sym back to newly created state, but keep undef.next if it is
+     being used as a list pointer.  */
   bh = h->root.u.undef.next;
+  if (bh == &h->root)
+    bh = NULL;
   if (bh != NULL || inf->htab->root.undefs_tail == &h->root)
     inf->twiddled = TRUE;
   (*inf->htab->root.table.newfunc) (&h->root.root,