summaryrefslogtreecommitdiffstats
path: root/meta/recipes-core/glibc/glibc/0028-Revert-Check-IFUNC-definition-in-unrelocated-shared-.patch
diff options
context:
space:
mode:
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-.patch98
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
+