aboutsummaryrefslogtreecommitdiff
path: root/bfd/elf64-x86-64.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/elf64-x86-64.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/elf64-x86-64.c')
-rw-r--r--bfd/elf64-x86-64.c10
1 files changed, 5 insertions, 5 deletions
diff --git a/bfd/elf64-x86-64.c b/bfd/elf64-x86-64.c
index 071b9c7..4a56d71 100644
--- a/bfd/elf64-x86-64.c
+++ b/bfd/elf64-x86-64.c
@@ -714,7 +714,7 @@ elf64_x86_64_elf_object_p (bfd *abfd)
static int
elf64_x86_64_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;
@@ -725,7 +725,7 @@ elf64_x86_64_tls_transition (struct bfd_link_info *info, int r_type,
case R_X86_64_GOTPC32_TLSDESC:
case R_X86_64_TLSDESC_CALL:
case R_X86_64_GOTTPOFF:
- if (is_local)
+ if (h == NULL)
return R_X86_64_TPOFF32;
return R_X86_64_GOTTPOFF;
case R_X86_64_TLSLD:
@@ -786,7 +786,7 @@ elf64_x86_64_check_relocs (bfd *abfd, struct bfd_link_info *info, asection *sec,
h = (struct elf_link_hash_entry *) h->root.u.i.link;
}
- r_type = elf64_x86_64_tls_transition (info, r_type, h == NULL);
+ r_type = elf64_x86_64_tls_transition (info, r_type, h);
switch (r_type)
{
case R_X86_64_TLSLD:
@@ -1216,7 +1216,7 @@ elf64_x86_64_gc_sweep_hook (bfd *abfd, struct bfd_link_info *info,
}
r_type = ELF64_R_TYPE (rel->r_info);
- r_type = elf64_x86_64_tls_transition (info, r_type, h != NULL);
+ r_type = elf64_x86_64_tls_transition (info, r_type, h);
switch (r_type)
{
case R_X86_64_TLSLD:
@@ -2502,7 +2502,7 @@ elf64_x86_64_relocate_section (bfd *output_bfd, struct bfd_link_info *info,
case R_X86_64_GOTPC32_TLSDESC:
case R_X86_64_TLSDESC_CALL:
case R_X86_64_GOTTPOFF:
- r_type = elf64_x86_64_tls_transition (info, r_type, h == NULL);
+ r_type = elf64_x86_64_tls_transition (info, r_type, h);
tls_type = GOT_UNKNOWN;
if (h == NULL && local_got_offsets)
tls_type = elf64_x86_64_local_got_tls_type (input_bfd) [r_symndx];