From eea6dad2b3ae91189caa91145dd133bae0398d21 Mon Sep 17 00:00:00 2001 From: Kyle McMartin Date: Fri, 20 Jun 2014 11:14:09 +0100 Subject: [PATCH] Similarly to the AArch64 patch, set DF_STATIC_TLS for consistency with other architectures when we emit IE relocs in a shared library. * elf32-arm.c (elf32_arm_check_relocs): Set DF_STATIC_TLS when emitting initial-exec relocs when not linking an executable. --- bfd/ChangeLog | 5 +++++ bfd/elf32-arm.c | 3 +++ 2 files changed, 8 insertions(+) diff --git a/bfd/ChangeLog b/bfd/ChangeLog index c56b48d..b7f235b 100644 --- a/bfd/ChangeLog +++ b/bfd/ChangeLog @@ -1,3 +1,8 @@ +2014-06-20 Kyle McMartin + + * elf32-arm.c (elf32_arm_check_relocs): Set DF_STATIC_TLS when + emitting initial-exec relocs when not linking an executable. + 2014-06-16 Will Newton * elf32-arm.c (elf32_arm_allocate_plt_entry): Increment diff --git a/bfd/elf32-arm.c b/bfd/elf32-arm.c index ca64c7b..1c6965e 100644 --- a/bfd/elf32-arm.c +++ b/bfd/elf32-arm.c @@ -12711,6 +12711,9 @@ elf32_arm_check_relocs (bfd *abfd, struct bfd_link_info *info, default: tls_type = GOT_NORMAL; break; } + if (!info->executable && (tls_type & GOT_TLS_IE)) + info->flags |= DF_STATIC_TLS; + if (h != NULL) { h->got.refcount++; -- 2.7.4