summaryrefslogtreecommitdiffstats
path: root/meta/recipes-core/glibc/glibc/0012-Quote-from-bug-1443-which-explains-what-the-patch-do.patch
diff options
context:
space:
mode:
authorKhem Raj <raj.khem@gmail.com>2020-08-07 15:09:36 -0700
committerRichard Purdie <richard.purdie@linuxfoundation.org>2020-08-08 09:17:49 +0100
commit392c117e7ab05da10a374f695d5232e7527ab5de (patch)
tree96acdc69cdc0815a3b820101ba14225ae466535d /meta/recipes-core/glibc/glibc/0012-Quote-from-bug-1443-which-explains-what-the-patch-do.patch
parent470c58ba4586082de802759686460222cc04336d (diff)
downloadpoky-392c117e7ab05da10a374f695d5232e7527ab5de.tar.gz
glibc: Upgrade to 2.32 release
Drop 0001-localedef-Add-hardlink-resolver-to-build.patch as its applied to localedef upstream Drop CVE patches which are already part of 2.32 release Drop unused attribute patch as its fixed differently in 2.32 Add a patch to mitigate the sideffect of [1] for ppc which detect wrong cpu in OE since we are cross compiling [1] https://sourceware.org/git/?p=glibc.git;a=commit;h=146fea07640387c78e334933de24b6353e1f0eba (From OE-Core rev: fe3d5136ef02721f9bbe01d98c1743b8dbcb69c5) Signed-off-by: Khem Raj <raj.khem@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Diffstat (limited to 'meta/recipes-core/glibc/glibc/0012-Quote-from-bug-1443-which-explains-what-the-patch-do.patch')
-rw-r--r--meta/recipes-core/glibc/glibc/0012-Quote-from-bug-1443-which-explains-what-the-patch-do.patch58
1 files changed, 0 insertions, 58 deletions
diff --git a/meta/recipes-core/glibc/glibc/0012-Quote-from-bug-1443-which-explains-what-the-patch-do.patch b/meta/recipes-core/glibc/glibc/0012-Quote-from-bug-1443-which-explains-what-the-patch-do.patch
deleted file mode 100644
index a0b46c0479..0000000000
--- a/meta/recipes-core/glibc/glibc/0012-Quote-from-bug-1443-which-explains-what-the-patch-do.patch
+++ /dev/null
@@ -1,58 +0,0 @@
1From 8ca8e5cd78cbd37a713e1181f8f6641b57352aa8 Mon Sep 17 00:00:00 2001
2From: Khem Raj <raj.khem@gmail.com>
3Date: Wed, 18 Mar 2015 00:20:09 +0000
4Subject: [PATCH] Quote from bug 1443 which explains what the patch does :
5
6 We build some random program and link it with -lust. When we run it,
7 it dies with a SIGSEGV before reaching main().
8
9 Libust.so depends on liburcu-bp.so from the usermode-rcu package.
10 Although libust.so is not prelinked, liburcu-bp.so IS prelinked; this
11 is critical.
12
13 Libust.so uses a TLS / __thread variable that is defined in liburcu-
14 bp.so. There are special ARM-specific relocation types that allow two
15 shared libraries to share thread-specific data. This is critical too.
16
17 One more critical issue: although liburcu-bp.so is prelinked, we can't
18 load it at its prelinked address, because we also link against
19 librt.so, and librt.so uses that address.
20
21 The dynamic linker is forced to relink liburcu-bp.so at a different
22 address. In the course of relinking, it processes the special ARM
23 relocation record mentioned above. The prelinker has already filled
24 in the information, which is a short offset into a table of thread-
25 specific data that is allocated per-thread for each library that uses
26 TLS. Because the normal behavior of a relocation is to add the symbol
27 value to an addend stored at the address being relocated, we end up
28 adding the short offset to itself, doubling it.
29
30 Now we have an awkward situation. The libust.so library doesn't know
31 about the addend, so its TLS data for this element is correct. The
32 liburcu-bp.so library has a different offset for the element. When we
33 go to initialize the element for the first time in liburcu-bp.so, we
34 write the address of the result at the doubled (broken) offset.
35 Later, when we refer to the address from libust.so, we check the value
36 at the correct offset, but it's NULL, so we eat hot SIGSEGV.
37
38Upstream-Status: Pending
39
40Signed-off-by: Andrei Dinu <andrei.adrianx.dinu@intel.com>
41Signed-off-by: Khem Raj <raj.khem@gmail.com>
42---
43 sysdeps/arm/dl-machine.h | 2 +-
44 1 file changed, 1 insertion(+), 1 deletion(-)
45
46diff --git a/sysdeps/arm/dl-machine.h b/sysdeps/arm/dl-machine.h
47index 90856779b1..a29bb86c56 100644
48--- a/sysdeps/arm/dl-machine.h
49+++ b/sysdeps/arm/dl-machine.h
50@@ -510,7 +510,7 @@ elf_machine_rel (struct link_map *map, const Elf32_Rel *reloc,
51
52 case R_ARM_TLS_DTPOFF32:
53 if (sym != NULL)
54- *reloc_addr += sym->st_value;
55+ *reloc_addr = sym->st_value;
56 break;
57
58 case R_ARM_TLS_TPOFF32: