aboutsummaryrefslogtreecommitdiff
path: root/bfd/elf32-arm.c
diff options
context:
space:
mode:
authorDaniel Jacobowitz <drow@false.org>2006-08-22 13:18:03 +0000
committerDaniel Jacobowitz <drow@false.org>2006-08-22 13:18:03 +0000
commitb34b2d70354518dd3f246a52174f7bde7e3a573a (patch)
treed6e12d5072654ea81901377c9537de533dbc7cef /bfd/elf32-arm.c
parent5c5f6e17d0445d1c67dd8a0a8310231b717e776c (diff)
downloadgdb-b34b2d70354518dd3f246a52174f7bde7e3a573a.zip
gdb-b34b2d70354518dd3f246a52174f7bde7e3a573a.tar.gz
gdb-b34b2d70354518dd3f246a52174f7bde7e3a573a.tar.bz2
* elf32-arm.c (elf32_arm_copy_indirect_symbol): Only copy
plt_thumb_refcount from indirect symbols.
Diffstat (limited to 'bfd/elf32-arm.c')
-rw-r--r--bfd/elf32-arm.c18
1 files changed, 10 insertions, 8 deletions
diff --git a/bfd/elf32-arm.c b/bfd/elf32-arm.c
index 8b62784..1631149 100644
--- a/bfd/elf32-arm.c
+++ b/bfd/elf32-arm.c
@@ -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);