diff options
Diffstat (limited to 'main/binutils/binutils-s390x-1.patch')
-rw-r--r-- | main/binutils/binutils-s390x-1.patch | 147 |
1 files changed, 0 insertions, 147 deletions
diff --git a/main/binutils/binutils-s390x-1.patch b/main/binutils/binutils-s390x-1.patch deleted file mode 100644 index fab51a2fad6..00000000000 --- a/main/binutils/binutils-s390x-1.patch +++ /dev/null @@ -1,147 +0,0 @@ -From 82a5bb730a16f8c7962568030268e784b4fb42c8 Mon Sep 17 00:00:00 2001 -From: Stefan Liebler <stli@linux.ibm.com> -Date: Thu, 28 Apr 2022 14:29:58 +0200 -Subject: [PATCH] s390: Avoid dynamic TLS relocs in PIE - -No dynamic relocs are needed for TLS defined in an executable, the -TP relative offset is known at link time. - -Fixes -FAIL: Build pr22263-1 - -bfd/ - PR ld/22263 - * elf64-s390.c (elf_s390_tls_transition): Use bfd_link_dll - instead of bfd_link_pic for TLS. - (elf_s390_check_relocs): Likewise. - (allocate_dynrelocs): Likewise. - (elf_s390_relocate_section): Likewise. - -(cherry picked from commit 26b1426577b5dcb32d149c64cca3e603b81948a9) ---- - bfd/elf64-s390.c | 26 +++++++++++++------------- - 1 file changed, 13 insertions(+), 13 deletions(-) - -diff --git a/bfd/elf64-s390.c b/bfd/elf64-s390.c -index e780efa7181..00ee386baab 100644 ---- a/bfd/elf64-s390.c -+++ b/bfd/elf64-s390.c -@@ -774,7 +774,7 @@ elf_s390_tls_transition (struct bfd_link_info *info, - int r_type, - int is_local) - { -- if (bfd_link_pic (info)) -+ if (bfd_link_dll (info)) - return r_type; - - switch (r_type) -@@ -1026,7 +1026,7 @@ elf_s390_check_relocs (bfd *abfd, - case R_390_TLS_GOTIE20: - case R_390_TLS_GOTIE64: - case R_390_TLS_IEENT: -- if (bfd_link_pic (info)) -+ if (bfd_link_dll (info)) - info->flags |= DF_STATIC_TLS; - /* Fall through */ - -@@ -1107,7 +1107,7 @@ elf_s390_check_relocs (bfd *abfd, - if (r_type == R_390_TLS_LE64 && bfd_link_pie (info)) - break; - -- if (!bfd_link_pic (info)) -+ if (!bfd_link_dll (info)) - break; - info->flags |= DF_STATIC_TLS; - /* Fall through */ -@@ -1571,7 +1571,7 @@ allocate_dynrelocs (struct elf_link_hash_entry *h, - to R_390_TLS_LE64 requiring no TLS entry. For GOTIE12 and IEENT - we can save the dynamic TLS relocation. */ - if (h->got.refcount > 0 -- && !bfd_link_pic (info) -+ && !bfd_link_dll (info) - && h->dynindx == -1 - && elf_s390_hash_entry(h)->tls_type >= GOT_TLS_IE) - { -@@ -2662,7 +2662,7 @@ elf_s390_relocate_section (bfd *output_bfd, - - /* Relocations for tls literal pool entries. */ - case R_390_TLS_IE64: -- if (bfd_link_pic (info)) -+ if (bfd_link_dll (info)) - { - Elf_Internal_Rela outrel; - asection *sreloc; -@@ -2690,7 +2690,7 @@ elf_s390_relocate_section (bfd *output_bfd, - else if (h != NULL) - { - tls_type = elf_s390_hash_entry(h)->tls_type; -- if (!bfd_link_pic (info) && h->dynindx == -1 && tls_type >= GOT_TLS_IE) -+ if (!bfd_link_dll (info) && h->dynindx == -1 && tls_type >= GOT_TLS_IE) - r_type = R_390_TLS_LE64; - } - if (r_type == R_390_TLS_GD64 && tls_type >= GOT_TLS_IE) -@@ -2801,14 +2801,14 @@ elf_s390_relocate_section (bfd *output_bfd, - if (local_got_offsets == NULL) - abort(); - off = local_got_offsets[r_symndx]; -- if (bfd_link_pic (info)) -+ if (bfd_link_dll (info)) - goto emit_tls_relocs; - } - else - { - off = h->got.offset; - tls_type = elf_s390_hash_entry(h)->tls_type; -- if (bfd_link_pic (info) || h->dynindx != -1 || tls_type < GOT_TLS_IE) -+ if (bfd_link_dll (info) || h->dynindx != -1 || tls_type < GOT_TLS_IE) - goto emit_tls_relocs; - } - -@@ -2825,7 +2825,7 @@ elf_s390_relocate_section (bfd *output_bfd, - break; - - case R_390_TLS_LDM64: -- if (! bfd_link_pic (info)) -+ if (! bfd_link_dll (info)) - /* The literal pool entry this relocation refers to gets ignored - by the optimized code of the local exec model. Do nothing - and the value will turn out zero. */ -@@ -2900,7 +2900,7 @@ elf_s390_relocate_section (bfd *output_bfd, - continue; - - case R_390_TLS_LDO64: -- if (bfd_link_pic (info) || (input_section->flags & SEC_DEBUGGING)) -+ if (bfd_link_dll (info) || (input_section->flags & SEC_DEBUGGING)) - relocation -= dtpoff_base (info); - else - /* When converting LDO to LE, we must negate. */ -@@ -2922,7 +2922,7 @@ elf_s390_relocate_section (bfd *output_bfd, - - if (r_type == R_390_TLS_LOAD) - { -- if (!bfd_link_pic (info) && (h == NULL || h->dynindx == -1)) -+ if (!bfd_link_dll (info) && (h == NULL || h->dynindx == -1)) - { - /* IE->LE transition. Four valid cases: - lg %rx,(0,%ry) -> sllg %rx,%ry,0 -@@ -2972,7 +2972,7 @@ elf_s390_relocate_section (bfd *output_bfd, - invalid_tls_insn (input_bfd, input_section, rel); - return false; - } -- if (!bfd_link_pic (info) && (h == NULL || h->dynindx == -1)) -+ if (!bfd_link_dll (info) && (h == NULL || h->dynindx == -1)) - { - /* GD->LE transition. - brasl %r14,__tls_get_addr@plt -> brcl 0,. */ -@@ -2991,7 +2991,7 @@ elf_s390_relocate_section (bfd *output_bfd, - } - else if (r_type == R_390_TLS_LDCALL) - { -- if (!bfd_link_pic (info)) -+ if (!bfd_link_dll (info)) - { - unsigned int insn0, insn1; - --- -2.27.0 - |