aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--bfd/ChangeLog5
-rw-r--r--bfd/elf32-i386.c6
2 files changed, 11 insertions, 0 deletions
diff --git a/bfd/ChangeLog b/bfd/ChangeLog
index 7772a06..9052b64 100644
--- a/bfd/ChangeLog
+++ b/bfd/ChangeLog
@@ -1,3 +1,8 @@
+2002-07-31 Jakub Jelinek <jakub@redhat.com>
+
+ * elf32-i386.c (elf_i386_copy_indirect_symbol): Swap tls_type
+ if _bfd_elf_link_hash_copy_indirect will swap got.refcount.
+
2002-07-31 Ian Dall <ian@sibyl.beware.dropbear.id.au>
* aoutx.h (aout_link_check_ar_symbols): Whether to include an
diff --git a/bfd/elf32-i386.c b/bfd/elf32-i386.c
index 7f26fab..997bf37 100644
--- a/bfd/elf32-i386.c
+++ b/bfd/elf32-i386.c
@@ -809,6 +809,12 @@ elf_i386_copy_indirect_symbol (dir, ind)
eind->dyn_relocs = NULL;
}
+ if (ind->root.type == bfd_link_hash_indirect
+ && dir->got.refcount <= 0)
+ {
+ edir->tls_type = eind->tls_type;
+ eind->tls_type = GOT_UNKNOWN;
+ }
_bfd_elf_link_hash_copy_indirect (dir, ind);
}