diff options
Diffstat (limited to 'sys-libs/glibc/files/2.19/glibc-2.19-ia64-gcc-4.8-reloc-hack.patch')
-rw-r--r-- | sys-libs/glibc/files/2.19/glibc-2.19-ia64-gcc-4.8-reloc-hack.patch | 32 |
1 files changed, 0 insertions, 32 deletions
diff --git a/sys-libs/glibc/files/2.19/glibc-2.19-ia64-gcc-4.8-reloc-hack.patch b/sys-libs/glibc/files/2.19/glibc-2.19-ia64-gcc-4.8-reloc-hack.patch deleted file mode 100644 index 72a616a0..00000000 --- a/sys-libs/glibc/files/2.19/glibc-2.19-ia64-gcc-4.8-reloc-hack.patch +++ /dev/null @@ -1,32 +0,0 @@ -https://bugs.gentoo.org/503838 -http://gcc.gnu.org/PR60465 -https://sourceware.org/ml/libc-alpha/2015-12/msg00556.html -https://trofi.github.io/posts/189-glibc-on-ia64-or-how-relocations-bootstrap.html - -newer versions of gcc generate relocations in the elf_get_dynamic_info func -which glibc relies on to populate some info structs. those structs are then -used by ldso to process relocations in itself. glibc requires that there are -no relocations until that point (*after* elf_get_dynamic_info), so we end up -crashing during elf_get_dynamic_info because the relocation has not yet been -processed. - -this hack shuffles the code in a way that tricks gcc into not generating the -relocation. we need to figure out something better for upstream. - ---- a/elf/get-dynamic-info.h -+++ b/elf/get-dynamic-info.h -@@ -66,8 +66,12 @@ elf_get_dynamic_info (struct link_map *l, ElfW(Dyn) *temp) - info[DT_VALTAGIDX (dyn->d_tag) + DT_NUM + DT_THISPROCNUM - + DT_VERSIONTAGNUM + DT_EXTRANUM] = dyn; - else if ((d_tag_utype) DT_ADDRTAGIDX (dyn->d_tag) < DT_ADDRNUM) -- info[DT_ADDRTAGIDX (dyn->d_tag) + DT_NUM + DT_THISPROCNUM -- + DT_VERSIONTAGNUM + DT_EXTRANUM + DT_VALNUM] = dyn; -+ { -+ d_tag_utype i = -+ DT_ADDRTAGIDX (dyn->d_tag) + DT_NUM + DT_THISPROCNUM -+ + DT_VERSIONTAGNUM + DT_EXTRANUM + DT_VALNUM; -+ info[i] = dyn; -+ } - ++dyn; - } - |