diff options
author | H.J. Lu <hjl.tools@gmail.com> | 2017-10-12 14:11:29 -0700 |
---|---|---|
committer | H.J. Lu <hjl.tools@gmail.com> | 2017-10-19 05:23:15 -0700 |
commit | 1e6803429b4c5fac998f01a58ee140b4f9cf3685 (patch) | |
tree | 7589954f587e3080101279fb45211be99da64df1 | |
parent | 280958942b74f3164708700f195188c4d3446f58 (diff) | |
download | binutils-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.c | 4 |
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 { |