* elf32-mips.c (_bfd_mips_elf_copy_indirect_symbol): Bail out after
authorAlan Modra <amodra@gmail.com>
Thu, 4 Oct 2001 16:09:03 +0000 (16:09 +0000)
committerAlan Modra <amodra@gmail.com>
Thu, 4 Oct 2001 16:09:03 +0000 (16:09 +0000)
copying flags if this is a weakdef.

bfd/ChangeLog
bfd/elf32-mips.c

index 1f05887..e97b1b8 100644 (file)
@@ -1,5 +1,10 @@
 2001-10-04  Alan Modra  <amodra@bigpond.net.au>
 
+       * elf32-mips.c (_bfd_mips_elf_copy_indirect_symbol): Bail out after
+       copying flags if this is a weakdef.
+
+2001-10-04  Alan Modra  <amodra@bigpond.net.au>
+
        * elf-bfd.h (struct elf_link_hash_entry): Reorganise for better
        packing.
 
index fd79bba..6f39d9f 100644 (file)
@@ -8074,7 +8074,8 @@ _bfd_mips_elf_gc_sweep_hook (abfd, info, sec, relocs)
 
 /* Copy data from a MIPS ELF indirect symbol to its direct symbol,
    hiding the old indirect symbol.  Process additional relocation
-   information.  */
+   information.  Also called for weakdefs, in which case we just let
+   _bfd_elf_link_hach_copy_indirect copy the flags for us.  */
 
 static void
 _bfd_mips_elf_copy_indirect_symbol (dir, ind)
@@ -8084,6 +8085,9 @@ _bfd_mips_elf_copy_indirect_symbol (dir, ind)
 
   _bfd_elf_link_hash_copy_indirect (dir, ind);
 
+  if (dir == ind->weakdef)
+    return;
+
   dirmips = (struct mips_elf_link_hash_entry *) dir;
   indmips = (struct mips_elf_link_hash_entry *) ind;
   dirmips->possibly_dynamic_relocs += indmips->possibly_dynamic_relocs;