aboutsummaryrefslogtreecommitdiff
path: root/bfd/elf32-i386.c
diff options
context:
space:
mode:
authorH.J. Lu <hjl.tools@gmail.com>2007-08-21 13:52:54 +0000
committerH.J. Lu <hjl.tools@gmail.com>2007-08-21 13:52:54 +0000
commit2f3bf80a30d2c892f60087a246e8b4b4b33498d2 (patch)
treed80622bc6c9145496b95719f0bb88226d0735074 /bfd/elf32-i386.c
parentf429d7d03d62ba2816db1701f3b4d6d49a93b36f (diff)
downloadgdb-2f3bf80a30d2c892f60087a246e8b4b4b33498d2.zip
gdb-2f3bf80a30d2c892f60087a246e8b4b4b33498d2.tar.gz
gdb-2f3bf80a30d2c892f60087a246e8b4b4b33498d2.tar.bz2
2007-08-21 H.J. Lu <hongjiu.lu@intel.com>
* elf32-i386.c (elf_i386_tls_transition): Accept a pointer to ELF hash entry instead of an integer for local test. (elf_i386_check_relocs): Updated. (elf_i386_gc_sweep_hook): Likewise. (elf_i386_relocate_section): Likewise. * elf64-x86-64.c (elf64_x86_64_tls_transition): Accept a pointer to ELF hash entry instead of an integer for local test. (elf64_x86_64_check_relocs): Updated. (elf64_x86_64_gc_sweep_hook): Likewise. (elf64_x86_64_relocate_section): Likewise.
Diffstat (limited to 'bfd/elf32-i386.c')
-rw-r--r--bfd/elf32-i386.c12
1 files changed, 6 insertions, 6 deletions
diff --git a/bfd/elf32-i386.c b/bfd/elf32-i386.c
index 1139635..af3b860 100644
--- a/bfd/elf32-i386.c
+++ b/bfd/elf32-i386.c
@@ -895,7 +895,7 @@ elf_i386_copy_indirect_symbol (struct bfd_link_info *info,
static int
elf_i386_tls_transition (struct bfd_link_info *info, int r_type,
- int is_local)
+ struct elf_link_hash_entry *h)
{
if (info->shared)
return r_type;
@@ -906,12 +906,12 @@ elf_i386_tls_transition (struct bfd_link_info *info, int r_type,
case R_386_TLS_GOTDESC:
case R_386_TLS_DESC_CALL:
case R_386_TLS_IE_32:
- if (is_local)
+ if (h == NULL)
return R_386_TLS_LE_32;
return R_386_TLS_IE_32;
case R_386_TLS_IE:
case R_386_TLS_GOTIE:
- if (is_local)
+ if (h == NULL)
return R_386_TLS_LE_32;
return r_type;
case R_386_TLS_LDM:
@@ -975,7 +975,7 @@ elf_i386_check_relocs (bfd *abfd,
h = (struct elf_link_hash_entry *) h->root.u.i.link;
}
- r_type = elf_i386_tls_transition (info, r_type, h == NULL);
+ r_type = elf_i386_tls_transition (info, r_type, h);
switch (r_type)
{
@@ -1364,7 +1364,7 @@ elf_i386_gc_sweep_hook (bfd *abfd,
}
r_type = ELF32_R_TYPE (rel->r_info);
- r_type = elf_i386_tls_transition (info, r_type, h != NULL);
+ r_type = elf_i386_tls_transition (info, r_type, h);
switch (r_type)
{
case R_386_TLS_LDM:
@@ -2624,7 +2624,7 @@ elf_i386_relocate_section (bfd *output_bfd,
case R_386_TLS_DESC_CALL:
case R_386_TLS_IE_32:
case R_386_TLS_GOTIE:
- r_type = elf_i386_tls_transition (info, r_type, h == NULL);
+ r_type = elf_i386_tls_transition (info, r_type, h);
tls_type = GOT_UNKNOWN;
if (h == NULL && local_got_offsets)
tls_type = elf_i386_local_got_tls_type (input_bfd) [r_symndx];