diff options
author | Daniel Jacobowitz <drow@false.org> | 2006-08-22 13:18:03 +0000 |
---|---|---|
committer | Daniel Jacobowitz <drow@false.org> | 2006-08-22 13:18:03 +0000 |
commit | b34b2d70354518dd3f246a52174f7bde7e3a573a (patch) | |
tree | d6e12d5072654ea81901377c9537de533dbc7cef /bfd/elf32-arm.c | |
parent | 5c5f6e17d0445d1c67dd8a0a8310231b717e776c (diff) | |
download | gdb-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.c | 18 |
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); |