* elf32-arm.c (elf32_arm_copy_indirect_symbol): Only copy
authorDaniel Jacobowitz <drow@false.org>
Tue, 22 Aug 2006 13:18:03 +0000 (13:18 +0000)
committerDaniel Jacobowitz <drow@false.org>
Tue, 22 Aug 2006 13:18:03 +0000 (13:18 +0000)
plt_thumb_refcount from indirect symbols.

bfd/ChangeLog
bfd/elf32-arm.c

index adc0f59e46b7773de56678d9955aef3ab1eeffa1..3321856b74012f62d0c8458f28ece0c5a1f27950 100644 (file)
@@ -1,3 +1,8 @@
+2006-08-22  Daniel Jacobowitz  <dan@codesourcery.com>
+
+       * elf32-arm.c (elf32_arm_copy_indirect_symbol): Only copy
+       plt_thumb_refcount from indirect symbols.
+
 2006-08-22  Alan Modra  <amodra@bigpond.net.au>
 
        * elf32-ppc.c (ppc_elf_relocate_section): Correct GOT and PLT HA
index 8b6278419f30700a126b5f28ce48865d8ca5835b..163114996b037983ea05d6e44d8ebfe81090ff85 100644 (file)
@@ -2356,15 +2356,17 @@ elf32_arm_copy_indirect_symbol (struct bfd_link_info *info,
       eind->relocs_copied = NULL;
     }
 
-  /* Copy over PLT info.  */
-  edir->plt_thumb_refcount += eind->plt_thumb_refcount;
-  eind->plt_thumb_refcount = 0;
-
-  if (ind->root.type == bfd_link_hash_indirect
-      && dir->got.refcount <= 0)
+  if (ind->root.type == bfd_link_hash_indirect)
     {
-      edir->tls_type = eind->tls_type;
-      eind->tls_type = GOT_UNKNOWN;
+      /* Copy over PLT info.  */
+      edir->plt_thumb_refcount += eind->plt_thumb_refcount;
+      eind->plt_thumb_refcount = 0;
+
+      if (dir->got.refcount <= 0)
+       {
+         edir->tls_type = eind->tls_type;
+         eind->tls_type = GOT_UNKNOWN;
+       }
     }
 
   _bfd_elf_link_hash_copy_indirect (info, dir, ind);