Set DF_STATIC_TLS for PIEs
If we can dlopen an object then DF_STATIC_TLS is relevant. * elf32-ppc.c (ppc_elf_check_relocs): Set DF_STATIC_TLS for PIEs too. * elf64-ppc.c (ppc64_elf_check_relocs): Likewise.
This commit is contained in:
parent
53a8cffa62
commit
afb933145e
@ -1,3 +1,8 @@
|
||||
2014-07-02 Alan Modra <amodra@gmail.com>
|
||||
|
||||
* elf32-ppc.c (ppc_elf_check_relocs): Set DF_STATIC_TLS for PIEs too.
|
||||
* elf64-ppc.c (ppc64_elf_check_relocs): Likewise.
|
||||
|
||||
2014-07-01 Alan Modra <amodra@gmail.com>
|
||||
|
||||
* bfd.c (struct bfd): Reorganise for better packing. Delete
|
||||
|
@ -4017,7 +4017,7 @@ ppc_elf_check_relocs (bfd *abfd,
|
||||
case R_PPC_GOT_TPREL16_LO:
|
||||
case R_PPC_GOT_TPREL16_HI:
|
||||
case R_PPC_GOT_TPREL16_HA:
|
||||
if (!info->executable)
|
||||
if (info->shared)
|
||||
info->flags |= DF_STATIC_TLS;
|
||||
tls_type = TLS_TLS | TLS_TPREL;
|
||||
goto dogottls;
|
||||
@ -4308,7 +4308,7 @@ ppc_elf_check_relocs (bfd *abfd,
|
||||
case R_PPC_TPREL16_LO:
|
||||
case R_PPC_TPREL16_HI:
|
||||
case R_PPC_TPREL16_HA:
|
||||
if (!info->executable)
|
||||
if (info->shared)
|
||||
info->flags |= DF_STATIC_TLS;
|
||||
goto dodyn;
|
||||
|
||||
|
@ -5328,7 +5328,7 @@ ppc64_elf_check_relocs (bfd *abfd, struct bfd_link_info *info,
|
||||
case R_PPC64_GOT_TPREL16_LO_DS:
|
||||
case R_PPC64_GOT_TPREL16_HI:
|
||||
case R_PPC64_GOT_TPREL16_HA:
|
||||
if (!info->executable)
|
||||
if (info->shared)
|
||||
info->flags |= DF_STATIC_TLS;
|
||||
tls_type = TLS_TLS | TLS_TPREL;
|
||||
goto dogottls;
|
||||
@ -5558,7 +5558,7 @@ ppc64_elf_check_relocs (bfd *abfd, struct bfd_link_info *info,
|
||||
|
||||
case R_PPC64_TPREL64:
|
||||
tls_type = TLS_EXPLICIT | TLS_TLS | TLS_TPREL;
|
||||
if (!info->executable)
|
||||
if (info->shared)
|
||||
info->flags |= DF_STATIC_TLS;
|
||||
goto dotlstoc;
|
||||
|
||||
@ -5636,8 +5636,7 @@ ppc64_elf_check_relocs (bfd *abfd, struct bfd_link_info *info,
|
||||
case R_PPC64_TPREL16_HIGHESTA:
|
||||
if (info->shared)
|
||||
{
|
||||
if (!info->executable)
|
||||
info->flags |= DF_STATIC_TLS;
|
||||
info->flags |= DF_STATIC_TLS;
|
||||
goto dodyn;
|
||||
}
|
||||
break;
|
||||
|
Loading…
Reference in New Issue
Block a user