1 |
commit: 7d1022a04284035ab567d85e356e14e06aab121d |
2 |
Author: Sergei Trofimovich <slyfox <AT> gentoo <DOT> org> |
3 |
AuthorDate: Thu Feb 6 22:19:38 2020 +0000 |
4 |
Commit: Sergei Trofimovich <slyfox <AT> gentoo <DOT> org> |
5 |
CommitDate: Thu Feb 6 22:19:38 2020 +0000 |
6 |
URL: https://gitweb.gentoo.org/proj/gcc-patches.git/commit/?id=7d1022a0 |
7 |
|
8 |
9.2.0: backport libsanitizer tweaks for glibc-2.31 |
9 |
|
10 |
Reported-by: Mike Lothian |
11 |
Bug: https://bugs.gentoo.org/708346 |
12 |
Signed-off-by: Sergei Trofimovich <slyfox <AT> gentoo.org> |
13 |
|
14 |
.../gentoo/35_all_glibc-2.31-libsanitizer-1.patch | 40 ++++++++++++ |
15 |
.../gentoo/36_all_glibc-2.31-libsanitizer-2.patch | 76 ++++++++++++++++++++++ |
16 |
9.2.0/gentoo/README.history | 2 + |
17 |
3 files changed, 118 insertions(+) |
18 |
|
19 |
diff --git a/9.2.0/gentoo/35_all_glibc-2.31-libsanitizer-1.patch b/9.2.0/gentoo/35_all_glibc-2.31-libsanitizer-1.patch |
20 |
new file mode 100644 |
21 |
index 0000000..4906ae0 |
22 |
--- /dev/null |
23 |
+++ b/9.2.0/gentoo/35_all_glibc-2.31-libsanitizer-1.patch |
24 |
@@ -0,0 +1,40 @@ |
25 |
+https://bugs.gentoo.org/708346 |
26 |
+ |
27 |
+From ce9568e9e9cf6094be30e748821421e703754ffc Mon Sep 17 00:00:00 2001 |
28 |
+From: Jakub Jelinek <jakub@××××××.com> |
29 |
+Date: Fri, 8 Nov 2019 19:53:18 +0100 |
30 |
+Subject: [PATCH] backport: re PR sanitizer/92154 (new glibc breaks arm |
31 |
+ bootstrap due to libsanitizer) |
32 |
+ |
33 |
+ Backported from mainline |
34 |
+ 2019-10-22 Tamar Christina <tamar.christina@×××.com> |
35 |
+ |
36 |
+ PR sanitizer/92154 |
37 |
+ * sanitizer_common/sanitizer_platform_limits_posix.cc: |
38 |
+ Cherry-pick compiler-rt revision r375220. |
39 |
+ |
40 |
+From-SVN: r277981 |
41 |
+--- |
42 |
+ libsanitizer/ChangeLog | 9 +++++++++ |
43 |
+ .../sanitizer_common/sanitizer_platform_limits_posix.cc | 6 +++++- |
44 |
+ 2 files changed, 14 insertions(+), 1 deletion(-) |
45 |
+ |
46 |
+--- a/libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.cc |
47 |
++++ b/libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.cc |
48 |
+@@ -1156,8 +1156,12 @@ CHECK_SIZE_AND_OFFSET(ipc_perm, uid); |
49 |
+ CHECK_SIZE_AND_OFFSET(ipc_perm, gid); |
50 |
+ CHECK_SIZE_AND_OFFSET(ipc_perm, cuid); |
51 |
+ CHECK_SIZE_AND_OFFSET(ipc_perm, cgid); |
52 |
+-#if !defined(__aarch64__) || !SANITIZER_LINUX || __GLIBC_PREREQ (2, 21) |
53 |
++#if (!defined(__aarch64__) || !SANITIZER_LINUX || __GLIBC_PREREQ (2, 21)) && \ |
54 |
++ !defined(__arm__) |
55 |
+ /* On aarch64 glibc 2.20 and earlier provided incorrect mode field. */ |
56 |
++/* On Arm glibc 2.31 and later provide a different mode field, this field is |
57 |
++ never used by libsanitizer so we can simply ignore this assert for all glibc |
58 |
++ versions. */ |
59 |
+ CHECK_SIZE_AND_OFFSET(ipc_perm, mode); |
60 |
+ #endif |
61 |
+ |
62 |
+-- |
63 |
+2.25.0 |
64 |
+ |
65 |
|
66 |
diff --git a/9.2.0/gentoo/36_all_glibc-2.31-libsanitizer-2.patch b/9.2.0/gentoo/36_all_glibc-2.31-libsanitizer-2.patch |
67 |
new file mode 100644 |
68 |
index 0000000..1960a11 |
69 |
--- /dev/null |
70 |
+++ b/9.2.0/gentoo/36_all_glibc-2.31-libsanitizer-2.patch |
71 |
@@ -0,0 +1,76 @@ |
72 |
+https://bugs.gentoo.org/708346 |
73 |
+ |
74 |
+From 75003cdd23c310ec385344e8040d490e8dd6d2be Mon Sep 17 00:00:00 2001 |
75 |
+From: Jakub Jelinek <jakub@××××××.com> |
76 |
+Date: Fri, 20 Dec 2019 17:58:35 +0100 |
77 |
+Subject: [PATCH] backport: re PR sanitizer/92154 (new glibc breaks arm |
78 |
+ bootstrap due to libsanitizer) |
79 |
+ |
80 |
+ Backported from mainline |
81 |
+ 2019-11-26 Jakub Jelinek <jakub@××××××.com> |
82 |
+ |
83 |
+ PR sanitizer/92154 |
84 |
+ * sanitizer_common/sanitizer_platform_limits_posix.h: Cherry-pick |
85 |
+ llvm-project revision 947f9692440836dcb8d88b74b69dd379d85974ce. |
86 |
+ * sanitizer_common/sanitizer_platform_limits_posix.cc: Likewise. |
87 |
+ |
88 |
+From-SVN: r279653 |
89 |
+--- |
90 |
+ libsanitizer/ChangeLog | 10 ++++++++++ |
91 |
+ .../sanitizer_platform_limits_posix.cc | 9 +++------ |
92 |
+ .../sanitizer_platform_limits_posix.h | 15 +-------------- |
93 |
+ 3 files changed, 14 insertions(+), 20 deletions(-) |
94 |
+ |
95 |
+--- a/libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.cc |
96 |
++++ b/libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.cc |
97 |
+@@ -1156,12 +1156,9 @@ CHECK_SIZE_AND_OFFSET(ipc_perm, uid); |
98 |
+ CHECK_SIZE_AND_OFFSET(ipc_perm, gid); |
99 |
+ CHECK_SIZE_AND_OFFSET(ipc_perm, cuid); |
100 |
+ CHECK_SIZE_AND_OFFSET(ipc_perm, cgid); |
101 |
+-#if (!defined(__aarch64__) || !SANITIZER_LINUX || __GLIBC_PREREQ (2, 21)) && \ |
102 |
+- !defined(__arm__) |
103 |
+-/* On aarch64 glibc 2.20 and earlier provided incorrect mode field. */ |
104 |
+-/* On Arm glibc 2.31 and later provide a different mode field, this field is |
105 |
+- never used by libsanitizer so we can simply ignore this assert for all glibc |
106 |
+- versions. */ |
107 |
++#if !SANITIZER_LINUX || __GLIBC_PREREQ (2, 31) |
108 |
++/* glibc 2.30 and earlier provided 16-bit mode field instead of 32-bit |
109 |
++ on many architectures. */ |
110 |
+ CHECK_SIZE_AND_OFFSET(ipc_perm, mode); |
111 |
+ #endif |
112 |
+ |
113 |
+diff --git a/libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.h b/libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.h |
114 |
+index 73af92af1e8..6a673a7c995 100644 |
115 |
+--- a/libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.h |
116 |
++++ b/libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.h |
117 |
+@@ -211,26 +211,13 @@ namespace __sanitizer { |
118 |
+ u64 __unused1; |
119 |
+ u64 __unused2; |
120 |
+ #elif defined(__sparc__) |
121 |
+-#if defined(__arch64__) |
122 |
+ unsigned mode; |
123 |
+- unsigned short __pad1; |
124 |
+-#else |
125 |
+- unsigned short __pad1; |
126 |
+- unsigned short mode; |
127 |
+ unsigned short __pad2; |
128 |
+-#endif |
129 |
+ unsigned short __seq; |
130 |
+ unsigned long long __unused1; |
131 |
+ unsigned long long __unused2; |
132 |
+-#elif defined(__mips__) || defined(__aarch64__) || defined(__s390x__) |
133 |
+- unsigned int mode; |
134 |
+- unsigned short __seq; |
135 |
+- unsigned short __pad1; |
136 |
+- unsigned long __unused1; |
137 |
+- unsigned long __unused2; |
138 |
+ #else |
139 |
+- unsigned short mode; |
140 |
+- unsigned short __pad1; |
141 |
++ unsigned int mode; |
142 |
+ unsigned short __seq; |
143 |
+ unsigned short __pad2; |
144 |
+ #if defined(__x86_64__) && !defined(_LP64) |
145 |
+-- |
146 |
+2.25.0 |
147 |
+ |
148 |
|
149 |
diff --git a/9.2.0/gentoo/README.history b/9.2.0/gentoo/README.history |
150 |
index 0ac54f3..01df09a 100644 |
151 |
--- a/9.2.0/gentoo/README.history |
152 |
+++ b/9.2.0/gentoo/README.history |
153 |
@@ -1,5 +1,7 @@ |
154 |
5 TODO |
155 |
+ 34_all_ia64-neg-insn-cost.patch |
156 |
+ + 35_all_glibc-2.31-libsanitizer-1.patch |
157 |
+ + 36_all_glibc-2.31-libsanitizer-2.patch |
158 |
|
159 |
4 22 Dec 2012 |
160 |
+ 31_all_openmp-for-SEGV.patch |