summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorH.J. Lu <hjl.tools@gmail.com>2017-10-12 14:11:29 -0700
committerH.J. Lu <hjl.tools@gmail.com>2017-10-19 05:23:15 -0700
commit1e6803429b4c5fac998f01a58ee140b4f9cf3685 (patch)
tree7589954f587e3080101279fb45211be99da64df1
parent280958942b74f3164708700f195188c4d3446f58 (diff)
downloadbinutils-gdb-users/hjl/pr22263.tar.gz
Alpha: Check bfd_link_executable for TLS checkusers/hjl/pr22263
Copied from x86, check bfd_link_executable, instead of bfd_link_pic, for TLS relocation check. Not sure if it works correctly. All usages of bfd_link_pic should be audited. PR ld/22263 * elf64-alpha.c (elf64_alpha_check_relocs): Replace bfd_link_pic with !bfd_link_executable. (elf64_alpha_relocate_section): Replace !bfd_link_pic with bfd_link_executable.
-rw-r--r--bfd/elf64-alpha.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/bfd/elf64-alpha.c b/bfd/elf64-alpha.c
index d90c0168afe..fe174c8c726 100644
--- a/bfd/elf64-alpha.c
+++ b/bfd/elf64-alpha.c
@@ -1908,7 +1908,7 @@ elf64_alpha_check_relocs (bfd *abfd, struct bfd_link_info *info,
case R_ALPHA_GOTTPREL:
need = NEED_GOT | NEED_GOT_ENTRY;
gotent_flags = ALPHA_ELF_LINK_HASH_TLS_IE;
- if (bfd_link_pic (info))
+ if (!bfd_link_executable (info))
info->flags |= DF_STATIC_TLS;
break;
@@ -4722,7 +4722,7 @@ elf64_alpha_relocate_section (bfd *output_bfd, struct bfd_link_info *info,
BFD_ASSERT (elf_hash_table (info)->tls_sec != NULL);
if (r_type == R_ALPHA_GOTDTPREL)
value -= dtp_base;
- else if (!bfd_link_pic (info))
+ else if (bfd_link_executable (info))
value -= tp_base;
else
{