+2003-12-03  Alan Modra  <amodra@bigpond.net.au>
+
+       * ecoff.c (ecoff_link_add_archive_symbols): Update for renamed
+       bfd_link_hash_entry field "next" -> "und_next".
+       * linker.c (_bfd_link_hash_newfunc): Likewise.
+       (bfd_link_add_undef): Likewise.
+       (_bfd_generic_link_add_archive_symbols): Likewise.
+       (_bfd_generic_link_add_one_symbol): Likewise.
+       * xcofflink.c (xcoff_link_add_symbols): Likewise.
+
 2003-12-02  Nick Clifton  <nickc@redhat.com>
 
        * configure.in (ALL_LINGUAS): Add ro.
 
             entry if it is the tail, because that would lose any
             entries we add to the list later on.  */
          if (*pundef != info->hash->undefs_tail)
-           *pundef = (*pundef)->next;
+           *pundef = (*pundef)->und_next;
          else
-           pundef = &(*pundef)->next;
+           pundef = &(*pundef)->und_next;
          continue;
        }
 
         other object format.  */
       if (h->type != bfd_link_hash_undefined)
        {
-         pundef = &(*pundef)->next;
+         pundef = &(*pundef)->und_next;
          continue;
        }
 
       if (file_offset == 0)
        {
          /* Nothing in this slot.  */
-         pundef = &(*pundef)->next;
+         pundef = &(*pundef)->und_next;
          continue;
        }
 
 
          if (! found)
            {
-             pundef = &(*pundef)->next;
+             pundef = &(*pundef)->und_next;
              continue;
            }
 
       if (! ecoff_link_add_object_symbols (element, info))
        return FALSE;
 
-      pundef = &(*pundef)->next;
+      pundef = &(*pundef)->und_next;
     }
 
   return TRUE;
 
 
       /* Initialize the local fields.  */
       h->type = bfd_link_hash_new;
-      h->next = NULL;
+      h->und_next = NULL;
     }
 
   return entry;
 bfd_link_add_undef (struct bfd_link_hash_table *table,
                    struct bfd_link_hash_entry *h)
 {
-  BFD_ASSERT (h->next == NULL);
+  BFD_ASSERT (h->und_next == NULL);
   if (table->undefs_tail != NULL)
-    table->undefs_tail->next = h;
+    table->undefs_tail->und_next = h;
   if (table->undefs == NULL)
     table->undefs = h;
   table->undefs_tail = h;
             us to lose track of whether the symbol has been
             referenced).  */
          if (*pundef != info->hash->undefs_tail)
-           *pundef = (*pundef)->next;
+           *pundef = (*pundef)->und_next;
          else
-           pundef = &(*pundef)->next;
+           pundef = &(*pundef)->und_next;
          continue;
        }
 
            }
          if (arh == NULL)
            {
-             pundef = &(*pundef)->next;
+             pundef = &(*pundef)->und_next;
              continue;
            }
        }
            }
        }
 
-      pundef = &(*pundef)->next;
+      pundef = &(*pundef)->und_next;
     }
 
   archive_hash_table_free (&arsym_hash);
 
        case REF:
          /* A reference to a defined symbol.  */
-         if (h->next == NULL && info->hash->undefs_tail != h)
-           h->next = h;
+         if (h->und_next == NULL && info->hash->undefs_tail != h)
+           h->und_next = h;
          break;
 
        case BIG:
 
        case REFC:
          /* A reference to an indirect symbol.  */
-         if (h->next == NULL && info->hash->undefs_tail != h)
-           h->next = h;
+         if (h->und_next == NULL && info->hash->undefs_tail != h)
+           h->und_next = h;
          h = h->u.i.link;
          cycle = TRUE;
          break;
        case CWARN:
          /* Warn if this symbol has been referenced already,
             otherwise add a warning.  A symbol has been referenced if
-            the next field is not NULL, or it is the tail of the
+            the und_next field is not NULL, or it is the tail of the
             undefined symbol list.  The REF case above helps to
             ensure this.  */
-         if (h->next != NULL || info->hash->undefs_tail == h)
+         if (h->und_next != NULL || info->hash->undefs_tail == h)
            {
              if (! (*info->callbacks->warning) (info, string, h->root.string,
                                                 hash_entry_bfd (h), NULL, 0))
 
                      section = bfd_und_section_ptr;
                      value = 0;
                    }
-                 else if ((*sym_hash)->root.next != NULL
+                 else if ((*sym_hash)->root.und_next != NULL
                           || info->hash->undefs_tail == &(*sym_hash)->root)
                    {
                      /* This symbol has been referenced.  In this
 
+2003-12-03  Alan Modra  <amodra@bigpond.net.au>
+
+       * bfdlink.h (struct bfd_link_hash_entry): Rename "next" to "und_next".
+
 2003-12-02  Alan Modra  <amodra@bigpond.net.au>
 
        * bfdlink.h (struct bfd_link_info): Remove mpc860c0 field.
 
 {
   /* Base hash table entry structure.  */
   struct bfd_hash_entry root;
+
   /* Type of this entry.  */
   enum bfd_link_hash_type type;
 
      symbol is undefined and becomes defined, this field will
      automatically be non-NULL since the symbol will have been on the
      undefined symbol list.  */
-  struct bfd_link_hash_entry *next;
+  struct bfd_link_hash_entry *und_next;
+
   /* A union of information depending upon the type.  */
   union
     {
 
+2003-12-03  Alan Modra  <amodra@bigpond.net.au>
+
+       * emultempl/pe.em (pe_fixup_stdcalls): Update for renamed
+       bfd_link_hash_entry field "next" -> "und_next".
+       (pe_find_data_imports): Likewise.
+       (gld_${EMULATION_NAME}_after_open): Likewise.
+       * emultempl/sunos.em (before_allocation): Likewise.
+
 2003-12-02  Nick Clifton  <nickc@redhat.com>
 
        * ld.texinfo (Options): --ignore-all is no longer the default
 
   if (pe_dll_extra_pe_debug)
     printf ("%s\n", __FUNCTION__);
 
-  for (undef = link_info.hash->undefs; undef; undef=undef->next)
+  for (undef = link_info.hash->undefs; undef; undef=undef->und_next)
     if (undef->type == bfd_link_hash_undefined)
       {
        char* at = strchr (undef->root.string, '@');
   if (link_info.pei386_auto_import == 0)
     return;
 
-  for (undef = link_info.hash->undefs; undef; undef=undef->next)
+  for (undef = link_info.hash->undefs; undef; undef=undef->und_next)
     {
       if (undef->type == bfd_link_hash_undefined)
         {
 
       printf ("%s()\n", __FUNCTION__);
 
-      for (sym = link_info.hash->undefs; sym; sym=sym->next)
+      for (sym = link_info.hash->undefs; sym; sym=sym->und_next)
         printf ("-%s\n", sym->root.string);
       bfd_hash_traverse (&link_info.hash->table, pr_sym, NULL);
 
 
     {
       struct bfd_link_hash_entry *h;
 
-      for (h = link_info.hash->undefs; h != NULL; h = h->next)
+      for (h = link_info.hash->undefs; h != NULL; h = h->und_next)
        {
          if (h->type == bfd_link_hash_undefined
              && h->u.undef.abfd != NULL