bfd/
* elfxx-mips.c (mips_elf_initialize_tls_index): When processing a type (3) single-GOT entry, read tls_type from the hash table entry rather than the GOT entry.
This commit is contained in:
parent
f57d151a99
commit
cbf2cba4be
|
@ -1,3 +1,9 @@
|
|||
2007-05-31 Richard Sandiford <rsandifo@nildram.co.uk>
|
||||
|
||||
* elfxx-mips.c (mips_elf_initialize_tls_index): When processing a
|
||||
type (3) single-GOT entry, read tls_type from the hash table entry
|
||||
rather than the GOT entry.
|
||||
|
||||
2007-06-01 Alan Modra <amodra@bigpond.net.au>
|
||||
|
||||
* simple.c (bfd_simple_get_relocated_section_contents): Init
|
||||
|
|
|
@ -3186,6 +3186,7 @@ mips_elf_initialize_tls_index (void **entryp, void *p)
|
|||
struct mips_got_entry *entry = (struct mips_got_entry *)*entryp;
|
||||
struct mips_got_info *g = p;
|
||||
bfd_vma next_index;
|
||||
unsigned char tls_type;
|
||||
|
||||
/* We're only interested in TLS symbols. */
|
||||
if (entry->tls_type == 0)
|
||||
|
@ -3201,6 +3202,7 @@ mips_elf_initialize_tls_index (void **entryp, void *p)
|
|||
return 1;
|
||||
entry->d.h->tls_type |= GOT_TLS_OFFSET_DONE;
|
||||
entry->d.h->tls_got_offset = next_index;
|
||||
tls_type = entry->d.h->tls_type;
|
||||
}
|
||||
else
|
||||
{
|
||||
|
@ -3217,12 +3219,13 @@ mips_elf_initialize_tls_index (void **entryp, void *p)
|
|||
g->tls_ldm_offset = next_index;
|
||||
}
|
||||
entry->gotidx = next_index;
|
||||
tls_type = entry->tls_type;
|
||||
}
|
||||
|
||||
/* Account for the entries we've just allocated. */
|
||||
if (entry->tls_type & (GOT_TLS_GD | GOT_TLS_LDM))
|
||||
if (tls_type & (GOT_TLS_GD | GOT_TLS_LDM))
|
||||
g->tls_assigned_gotno += 2;
|
||||
if (entry->tls_type & GOT_TLS_IE)
|
||||
if (tls_type & GOT_TLS_IE)
|
||||
g->tls_assigned_gotno += 1;
|
||||
|
||||
return 1;
|
||||
|
|
Loading…
Reference in New Issue