diff options
Diffstat (limited to 'meta/recipes-core/glibc/glibc/0028-Revert-Check-IFUNC-definition-in-unrelocated-shared-.patch')
-rw-r--r-- | meta/recipes-core/glibc/glibc/0028-Revert-Check-IFUNC-definition-in-unrelocated-shared-.patch | 98 |
1 files changed, 98 insertions, 0 deletions
diff --git a/meta/recipes-core/glibc/glibc/0028-Revert-Check-IFUNC-definition-in-unrelocated-shared-.patch b/meta/recipes-core/glibc/glibc/0028-Revert-Check-IFUNC-definition-in-unrelocated-shared-.patch new file mode 100644 index 0000000000..8c146c0f60 --- /dev/null +++ b/meta/recipes-core/glibc/glibc/0028-Revert-Check-IFUNC-definition-in-unrelocated-shared-.patch @@ -0,0 +1,98 @@ +From ee65c9dde382e0235b6b53fa847b23d0097f554f Mon Sep 17 00:00:00 2001 +From: Khem Raj <raj.khem@gmail.com> +Date: Thu, 12 Jan 2017 12:13:32 -0800 +Subject: [PATCH 28/28] Revert "Check IFUNC definition in unrelocated shared + library [BZ #20019]" + +This reverts commit 0e6d3adc60d8073397af6a320e594d98d7fbedde. + +Causes regression in OE a new tracker to fix it has been opened + +https://sourceware.org/bugzilla/show_bug.cgi?id=21041 +--- +Upstream-Status: Inappropriate + + ChangeLog | 7 ------- + sysdeps/i386/dl-machine.h | 18 +----------------- + sysdeps/x86_64/dl-machine.h | 18 +----------------- + 3 files changed, 2 insertions(+), 41 deletions(-) + +diff --git a/ChangeLog b/ChangeLog +index f06c02a3c6..11d718d561 100644 +--- a/ChangeLog ++++ b/ChangeLog +@@ -4396,13 +4396,6 @@ + + * math/test-nan-overflow.c: Include stdlib.h for malloc. + +-2016-10-28 H.J. Lu <hongjiu.lu@intel.com> +- +- [BZ #20019] +- * sysdeps/i386/dl-machine.h (elf_machine_rel): Check IFUNC +- definition in unrelocated shared library. +- * sysdeps/x86_64/dl-machine.h (elf_machine_rela): Likewise. +- + 2016-10-28 Florian Weimer <fweimer@redhat.com> + + [BZ #20729] +diff --git a/sysdeps/i386/dl-machine.h b/sysdeps/i386/dl-machine.h +index 6eca69d567..a9edb41aa6 100644 +--- a/sysdeps/i386/dl-machine.h ++++ b/sysdeps/i386/dl-machine.h +@@ -321,23 +321,7 @@ elf_machine_rel (struct link_map *map, const Elf32_Rel *reloc, + 0) + && __builtin_expect (sym->st_shndx != SHN_UNDEF, 1) + && __builtin_expect (!skip_ifunc, 1)) +- { +-# ifndef RTLD_BOOTSTRAP +- if (sym_map != map +- && sym_map->l_type != lt_executable +- && !sym_map->l_relocated) +- { +- const char *strtab +- = (const char *) D_PTR (map, l_info[DT_STRTAB]); +- _dl_fatal_printf ("\ +-%s: Relink `%s' with `%s' for IFUNC symbol `%s'\n", +- RTLD_PROGNAME, map->l_name, +- sym_map->l_name, +- strtab + refsym->st_name); +- } +-# endif +- value = ((Elf32_Addr (*) (void)) value) (); +- } ++ value = ((Elf32_Addr (*) (void)) value) (); + + switch (r_type) + { +diff --git a/sysdeps/x86_64/dl-machine.h b/sysdeps/x86_64/dl-machine.h +index 3e7ae22c67..b3eb33f036 100644 +--- a/sysdeps/x86_64/dl-machine.h ++++ b/sysdeps/x86_64/dl-machine.h +@@ -331,23 +331,7 @@ elf_machine_rela (struct link_map *map, const ElfW(Rela) *reloc, + 0) + && __builtin_expect (sym->st_shndx != SHN_UNDEF, 1) + && __builtin_expect (!skip_ifunc, 1)) +- { +-# ifndef RTLD_BOOTSTRAP +- if (sym_map != map +- && sym_map->l_type != lt_executable +- && !sym_map->l_relocated) +- { +- const char *strtab +- = (const char *) D_PTR (map, l_info[DT_STRTAB]); +- _dl_fatal_printf ("\ +-%s: Relink `%s' with `%s' for IFUNC symbol `%s'\n", +- RTLD_PROGNAME, map->l_name, +- sym_map->l_name, +- strtab + refsym->st_name); +- } +-# endif +- value = ((ElfW(Addr) (*) (void)) value) (); +- } ++ value = ((ElfW(Addr) (*) (void)) value) (); + + switch (r_type) + { +-- +2.11.0 + |