summaryrefslogtreecommitdiffstats
path: root/meta/recipes-core/glibc/glibc/0028-Revert-Check-IFUNC-definition-in-unrelocated-shared-.patch
blob: 8c146c0f604434b67ec9df70cc728e36527443d7 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
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