Wed Jun 25 12:43:10 1997 H.J. Lu <hjl@gnu.ai.mit.edu>
authorIan Lance Taylor <ian@airs.com>
Wed, 25 Jun 1997 16:45:12 +0000 (16:45 +0000)
committerIan Lance Taylor <ian@airs.com>
Wed, 25 Jun 1997 16:45:12 +0000 (16:45 +0000)
* elflink.h (elf_merge_symbols): Resolve indirect and warning
symbols before checking for new symbols.

bfd/ChangeLog
bfd/elflink.h

index 86d136e..4dc6767 100644 (file)
@@ -1,5 +1,8 @@
 Wed Jun 25 12:43:10 1997  H.J. Lu  <hjl@gnu.ai.mit.edu>
 
+       * elflink.h (elf_merge_symbols): Resolve indirect and warning
+       symbols before checking for new symbols.
+
        * elfcore.h (elf_corefile_note): Move out of HAVE_SYS_PROCFS_H.
 
 Tue Jun 24 11:20:43 1997  Ian Lance Taylor  <ian@cygnus.com>
index 07f3811..d0fccf3 100644 (file)
@@ -319,6 +319,12 @@ elf_merge_symbol (abfd, info, name, sym, psec, pvalue, sym_hash,
     return false;
   *sym_hash = h;
 
+  /* For merging, we only care about real symbols.  */
+
+  while (h->root.type == bfd_link_hash_indirect
+        || h->root.type == bfd_link_hash_warning)
+    h = (struct elf_link_hash_entry *) h->root.u.i.link;
+
   /* If we just created the symbol, mark it as being an ELF symbol.
      Other than that, there is nothing to do--there is no merge issue
      with a newly defined symbol--so we just return.  */
@@ -329,12 +335,6 @@ elf_merge_symbol (abfd, info, name, sym, psec, pvalue, sym_hash,
       return true;
     }
 
-  /* For merging, we only care about real symbols.  */
-
-  while (h->root.type == bfd_link_hash_indirect
-        || h->root.type == bfd_link_hash_warning)
-    h = (struct elf_link_hash_entry *) h->root.u.i.link;
-
   /* OLDBFD is a BFD associated with the existing symbol.  */
 
   switch (h->root.type)