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 | |
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.
-rw-r--r-- | bfd/ChangeLog | 5 | ||||
-rw-r--r-- | bfd/elf32-arm.c | 18 |
2 files changed, 15 insertions, 8 deletions
diff --git a/bfd/ChangeLog b/bfd/ChangeLog index adc0f59..3321856 100644 --- a/bfd/ChangeLog +++ b/bfd/ChangeLog @@ -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 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); |