OSDN Git Service

bfd/
authorRichard Sandiford <rsandifo@nildram.co.uk>
Sat, 4 Feb 2006 08:29:58 +0000 (08:29 +0000)
committerRichard Sandiford <rsandifo@nildram.co.uk>
Sat, 4 Feb 2006 08:29:58 +0000 (08:29 +0000)
* elfxx-mips.c (mips_elf_initialize_tls_index): If a TLS symbol
has already been assigned a GOT index, copy that index to the
current hash table entry.

ld/testsuite/
* ld-mips-elf/tls-hidden2a.s, ld-mips-elf/tls-hidden2b.s,
* ld/testsuite/ld-mips-elf/tls-hidden2.d,
* ld/testsuite/ld-mips-elf/tls-hidden2-got.d: New test.
* ld-mips-elf/mips-elf.exp: Run it.

bfd/ChangeLog
bfd/elfxx-mips.c

index 5bd1e34..f2ca17d 100644 (file)
@@ -1,3 +1,9 @@
+2006-02-04  Richard Sandiford  <richard@codesourcery.com>
+
+       * elfxx-mips.c (mips_elf_initialize_tls_index): If a TLS symbol
+       has already been assigned a GOT index, copy that index to the
+       current hash table entry.
+
 2006-02-01  Eric Botcazou  <ebotcazou@libertysurf.fr>
 
        * elfxx-sparc.c (_bfd_sparc_elf_relocate_section): Reinstate bypass
index 99a0def..2675ee0 100644 (file)
@@ -2994,7 +2994,10 @@ mips_elf_initialize_tls_index (void **entryp, void *p)
       if (g->next == NULL)
        {
          if (entry->d.h->tls_type & GOT_TLS_OFFSET_DONE)
-           return 1;
+           {
+             entry->gotidx = entry->d.h->tls_got_offset;
+             return 1;
+           }
          entry->d.h->tls_type |= GOT_TLS_OFFSET_DONE;
        }
     }