Gentoo Archives: gentoo-commits

From: "Mike Frysinger (vapier)" <vapier@g.o>
To: gentoo-commits@l.g.o
Subject: [gentoo-commits] gentoo commit in src/patchsets/glibc/2.22: 00_all_0042-powerpc-Enforce-compiler-barriers-on-hardware-transa.patch 00_all_0043-powerpc-Fix-macro-usage-of-htm-builtins.patch 00_all_0044-S390-Do-not-use-direct-socket-syscalls-if-build-on-k.patch 00_all_0045-sln-use-stat64.patch README.history
Date: Mon, 07 Mar 2016 17:59:40
Message-Id: 20160307175932.6FE421607@oystercatcher.gentoo.org
1 vapier 16/03/07 17:59:32
2
3 Modified: README.history
4 Added:
5 00_all_0042-powerpc-Enforce-compiler-barriers-on-hardware-transa.patch
6 00_all_0043-powerpc-Fix-macro-usage-of-htm-builtins.patch
7 00_all_0044-S390-Do-not-use-direct-socket-syscalls-if-build-on-k.patch
8 00_all_0045-sln-use-stat64.patch
9 Log:
10 pull few more fixes from upstream
11
12 Revision Changes Path
13 1.12 src/patchsets/glibc/2.22/README.history
14
15 file : http://sources.gentoo.org/viewvc.cgi/gentoo/src/patchsets/glibc/2.22/README.history?rev=1.12&view=markup
16 plain: http://sources.gentoo.org/viewvc.cgi/gentoo/src/patchsets/glibc/2.22/README.history?rev=1.12&content-type=text/plain
17 diff : http://sources.gentoo.org/viewvc.cgi/gentoo/src/patchsets/glibc/2.22/README.history?r1=1.11&r2=1.12
18
19 Index: README.history
20 ===================================================================
21 RCS file: /var/cvsroot/gentoo/src/patchsets/glibc/2.22/README.history,v
22 retrieving revision 1.11
23 retrieving revision 1.12
24 diff -u -r1.11 -r1.12
25 --- README.history 17 Feb 2016 03:54:51 -0000 1.11
26 +++ README.history 7 Mar 2016 17:59:32 -0000 1.12
27 @@ -1,5 +1,9 @@
28 -11 [pending]
29 +11 07 Mar 2016
30 + 00_all_0041-CVE-2015-7547-getaddrinfo-stack-based-buffer-overflo.patch
31 + + 00_all_0042-powerpc-Enforce-compiler-barriers-on-hardware-transa.patch
32 + + 00_all_0043-powerpc-Fix-macro-usage-of-htm-builtins.patch
33 + + 00_all_0044-S390-Do-not-use-direct-socket-syscalls-if-build-on-k.patch
34 + + 00_all_0045-sln-use-stat64.patch
35 D 10_all_glibc-CVE-2015-7547.patch
36
37 10 16 Feb 2016
38
39
40
41 1.1 src/patchsets/glibc/2.22/00_all_0042-powerpc-Enforce-compiler-barriers-on-hardware-transa.patch
42
43 file : http://sources.gentoo.org/viewvc.cgi/gentoo/src/patchsets/glibc/2.22/00_all_0042-powerpc-Enforce-compiler-barriers-on-hardware-transa.patch?rev=1.1&view=markup
44 plain: http://sources.gentoo.org/viewvc.cgi/gentoo/src/patchsets/glibc/2.22/00_all_0042-powerpc-Enforce-compiler-barriers-on-hardware-transa.patch?rev=1.1&content-type=text/plain
45
46 Index: 00_all_0042-powerpc-Enforce-compiler-barriers-on-hardware-transa.patch
47 ===================================================================
48 From e012eafca47020da292f828fe128f3aca50026e1 Mon Sep 17 00:00:00 2001
49 From: Tulio Magno Quites Machado Filho <tuliom@××××××××××××××.com>
50 Date: Mon, 28 Dec 2015 12:24:43 -0200
51 Subject: [PATCH] powerpc: Enforce compiler barriers on hardware transactions
52
53 Work around a GCC behavior with hardware transactional memory built-ins.
54 GCC doesn't treat the PowerPC transactional built-ins as compiler
55 barriers, moving instructions past the transaction boundaries and
56 altering their atomicity.
57
58 (cherry picked from commit 42bf1c897170ff951c7fd0ee9da25f97ff787396)
59
60 Conflicts:
61 sysdeps/unix/sysv/linux/powerpc/elision-trylock.c
62
63 (cherry picked from commit 3803874b4a368eb8245fbf091651b6c8edd90b23)
64 ---
65 sysdeps/powerpc/nptl/elide.h | 8 ++---
66 sysdeps/powerpc/sysdep.h | 2 +-
67 sysdeps/unix/sysv/linux/powerpc/elision-lock.c | 4 +--
68 sysdeps/unix/sysv/linux/powerpc/elision-trylock.c | 6 ++--
69 sysdeps/unix/sysv/linux/powerpc/elision-unlock.c | 2 +-
70 sysdeps/unix/sysv/linux/powerpc/htm.h | 39 ++++++++++++++++++++---
71 6 files changed, 46 insertions(+), 15 deletions(-)
72
73 diff --git a/sysdeps/powerpc/nptl/elide.h b/sysdeps/powerpc/nptl/elide.h
74 index 2e1e443..02f8f3b 100644
75 --- a/sysdeps/powerpc/nptl/elide.h
76 +++ b/sysdeps/powerpc/nptl/elide.h
77 @@ -68,14 +68,14 @@ __get_new_count (uint8_t *adapt_count, int attempt)
78 else \
79 for (int i = __elision_aconf.try_tbegin; i > 0; i--) \
80 { \
81 - if (__builtin_tbegin (0)) \
82 + if (__libc_tbegin (0)) \
83 { \
84 if (is_lock_free) \
85 { \
86 ret = 1; \
87 break; \
88 } \
89 - __builtin_tabort (_ABORT_LOCK_BUSY); \
90 + __libc_tabort (_ABORT_LOCK_BUSY); \
91 } \
92 else \
93 if (!__get_new_count (&adapt_count,i)) \
94 @@ -90,7 +90,7 @@ __get_new_count (uint8_t *adapt_count, int attempt)
95 if (__elision_aconf.try_tbegin > 0) \
96 { \
97 if (write) \
98 - __builtin_tabort (_ABORT_NESTED_TRYLOCK); \
99 + __libc_tabort (_ABORT_NESTED_TRYLOCK); \
100 ret = ELIDE_LOCK (adapt_count, is_lock_free); \
101 } \
102 ret; \
103 @@ -102,7 +102,7 @@ __elide_unlock (int is_lock_free)
104 {
105 if (is_lock_free)
106 {
107 - __builtin_tend (0);
108 + __libc_tend (0);
109 return true;
110 }
111 return false;
112 diff --git a/sysdeps/powerpc/sysdep.h b/sysdeps/powerpc/sysdep.h
113 index e32168e..f424fe4 100644
114 --- a/sysdeps/powerpc/sysdep.h
115 +++ b/sysdeps/powerpc/sysdep.h
116 @@ -180,7 +180,7 @@
117 # define ABORT_TRANSACTION \
118 ({ \
119 if (THREAD_GET_TM_CAPABLE ()) \
120 - __builtin_tabort (_ABORT_SYSCALL); \
121 + __libc_tabort (_ABORT_SYSCALL); \
122 })
123 #else
124 # define ABORT_TRANSACTION
125 diff --git a/sysdeps/unix/sysv/linux/powerpc/elision-lock.c b/sysdeps/unix/sysv/linux/powerpc/elision-lock.c
126 index c6731ca..e11ad1d 100644
127 --- a/sysdeps/unix/sysv/linux/powerpc/elision-lock.c
128 +++ b/sysdeps/unix/sysv/linux/powerpc/elision-lock.c
129 @@ -74,12 +74,12 @@ __lll_lock_elision (int *lock, short *adapt_count, EXTRAARG int pshared)
130
131 for (int i = aconf.try_tbegin; i > 0; i--)
132 {
133 - if (__builtin_tbegin (0))
134 + if (__libc_tbegin (0))
135 {
136 if (*lock == 0)
137 return 0;
138 /* Lock was busy. Fall back to normal locking. */
139 - __builtin_tabort (_ABORT_LOCK_BUSY);
140 + __libc_tabort (_ABORT_LOCK_BUSY);
141 }
142 else
143 {
144 diff --git a/sysdeps/unix/sysv/linux/powerpc/elision-trylock.c b/sysdeps/unix/sysv/linux/powerpc/elision-trylock.c
145 index 7b6d1b9..edec155 100644
146 --- a/sysdeps/unix/sysv/linux/powerpc/elision-trylock.c
147 +++ b/sysdeps/unix/sysv/linux/powerpc/elision-trylock.c
148 @@ -31,7 +31,7 @@ int
149 __lll_trylock_elision (int *futex, short *adapt_count)
150 {
151 /* Implement POSIX semantics by forbiding nesting elided trylocks. */
152 - __builtin_tabort (_ABORT_NESTED_TRYLOCK);
153 + __libc_tabort (_ABORT_NESTED_TRYLOCK);
154
155 /* Only try a transaction if it's worth it. */
156 if (*adapt_count > 0)
157 @@ -40,13 +40,13 @@ __lll_trylock_elision (int *futex, short *adapt_count)
158 goto use_lock;
159 }
160
161 - if (__builtin_tbegin (0))
162 + if (__libc_tbegin (0))
163 {
164 if (*futex == 0)
165 return 0;
166
167 /* Lock was busy. Fall back to normal locking. */
168 - __builtin_tabort (_ABORT_LOCK_BUSY);
169 + __libc_tabort (_ABORT_LOCK_BUSY);
170 }
171 else
172 {
173 diff --git a/sysdeps/unix/sysv/linux/powerpc/elision-unlock.c b/sysdeps/unix/sysv/linux/powerpc/elision-unlock.c
174 index f04c339..7234db6 100644
175 --- a/sysdeps/unix/sysv/linux/powerpc/elision-unlock.c
176 +++ b/sysdeps/unix/sysv/linux/powerpc/elision-unlock.c
177 @@ -25,7 +25,7 @@ __lll_unlock_elision(int *lock, int pshared)
178 {
179 /* When the lock was free we're in a transaction. */
180 if (*lock == 0)
181 - __builtin_tend (0);
182 + __libc_tend (0);
183 else
184 lll_unlock ((*lock), pshared);
185 return 0;
186 diff --git a/sysdeps/unix/sysv/linux/powerpc/htm.h b/sysdeps/unix/sysv/linux/powerpc/htm.h
187 index 57d5cd6..f9a2587 100644
188 --- a/sysdeps/unix/sysv/linux/powerpc/htm.h
189 +++ b/sysdeps/unix/sysv/linux/powerpc/htm.h
190 @@ -118,13 +118,44 @@
191 __ret; \
192 })
193
194 -#define __builtin_tbegin(tdb) _tbegin ()
195 -#define __builtin_tend(nested) _tend ()
196 -#define __builtin_tabort(abortcode) _tabort (abortcode)
197 -#define __builtin_get_texasru() _texasru ()
198 +#define __libc_tbegin(tdb) _tbegin ()
199 +#define __libc_tend(nested) _tend ()
200 +#define __libc_tabort(abortcode) _tabort (abortcode)
201 +#define __builtin_get_texasru() _texasru ()
202
203 #else
204 # include <htmintrin.h>
205 +
206 +# ifdef __TM_FENCE__
207 + /* New GCC behavior. */
208 +# define __libc_tbegin(R) __builtin_tbegin (R);
209 +# define __libc_tend(R) __builtin_tend (R);
210 +# define __libc_tabort(R) __builtin_tabort (R);
211 +# else
212 + /* Workaround an old GCC behavior. Earlier releases of GCC 4.9 and 5.0,
213 + didn't use to treat __builtin_tbegin, __builtin_tend and
214 + __builtin_tabort as compiler barriers, moving instructions into and
215 + out the transaction.
216 + Remove this when glibc drops support for GCC 5.0. */
217 +# define __libc_tbegin(R) \
218 + ({ __asm__ volatile("" ::: "memory"); \
219 + unsigned int __ret = __builtin_tbegin (R); \
220 + __asm__ volatile("" ::: "memory"); \
221 + __ret; \
222 + })
223 +# define __libc_tabort(R) \
224 + ({ __asm__ volatile("" ::: "memory"); \
225 + unsigned int __ret = __builtin_tabort (R); \
226 + __asm__ volatile("" ::: "memory"); \
227 + __ret; \
228 + })
229 +# define __libc_tend(R) \
230 + ({ __asm__ volatile("" ::: "memory"); \
231 + unsigned int __ret = __builtin_tend (R); \
232 + __asm__ volatile("" ::: "memory"); \
233 + __ret; \
234 + })
235 +# endif /* __TM_FENCE__ */
236 #endif /* __HTM__ */
237
238 #endif /* __ASSEMBLER__ */
239 --
240 2.6.2
241
242
243
244
245 1.1 src/patchsets/glibc/2.22/00_all_0043-powerpc-Fix-macro-usage-of-htm-builtins.patch
246
247 file : http://sources.gentoo.org/viewvc.cgi/gentoo/src/patchsets/glibc/2.22/00_all_0043-powerpc-Fix-macro-usage-of-htm-builtins.patch?rev=1.1&view=markup
248 plain: http://sources.gentoo.org/viewvc.cgi/gentoo/src/patchsets/glibc/2.22/00_all_0043-powerpc-Fix-macro-usage-of-htm-builtins.patch?rev=1.1&content-type=text/plain
249
250 Index: 00_all_0043-powerpc-Fix-macro-usage-of-htm-builtins.patch
251 ===================================================================
252 From 78b80a22769f07fcd83763d5b8b3625fe4920574 Mon Sep 17 00:00:00 2001
253 From: "Paul E. Murphy" <murphyp@××××××××××××××.com>
254 Date: Wed, 20 Jan 2016 10:33:19 -0600
255 Subject: [PATCH] powerpc: Fix macro usage of htm builtins
256
257 Some extraneous semicolons were included in a
258 recent patch which causes a build failure with
259 newer compilers.
260
261 (cherry picked from commit af8ea0f449af7d3847351a4a5bafcd435a22ac31)
262 (cherry picked from commit a33d347c181cfa0d84c37e9961ebf030495ed248)
263 ---
264 sysdeps/unix/sysv/linux/powerpc/htm.h | 6 +++---
265 1 file changed, 3 insertions(+), 3 deletions(-)
266
267 diff --git a/sysdeps/unix/sysv/linux/powerpc/htm.h b/sysdeps/unix/sysv/linux/powerpc/htm.h
268 index f9a2587..7b49817 100644
269 --- a/sysdeps/unix/sysv/linux/powerpc/htm.h
270 +++ b/sysdeps/unix/sysv/linux/powerpc/htm.h
271 @@ -128,9 +128,9 @@
272
273 # ifdef __TM_FENCE__
274 /* New GCC behavior. */
275 -# define __libc_tbegin(R) __builtin_tbegin (R);
276 -# define __libc_tend(R) __builtin_tend (R);
277 -# define __libc_tabort(R) __builtin_tabort (R);
278 +# define __libc_tbegin(R) __builtin_tbegin (R)
279 +# define __libc_tend(R) __builtin_tend (R)
280 +# define __libc_tabort(R) __builtin_tabort (R)
281 # else
282 /* Workaround an old GCC behavior. Earlier releases of GCC 4.9 and 5.0,
283 didn't use to treat __builtin_tbegin, __builtin_tend and
284 --
285 2.6.2
286
287
288
289
290 1.1 src/patchsets/glibc/2.22/00_all_0044-S390-Do-not-use-direct-socket-syscalls-if-build-on-k.patch
291
292 file : http://sources.gentoo.org/viewvc.cgi/gentoo/src/patchsets/glibc/2.22/00_all_0044-S390-Do-not-use-direct-socket-syscalls-if-build-on-k.patch?rev=1.1&view=markup
293 plain: http://sources.gentoo.org/viewvc.cgi/gentoo/src/patchsets/glibc/2.22/00_all_0044-S390-Do-not-use-direct-socket-syscalls-if-build-on-k.patch?rev=1.1&content-type=text/plain
294
295 Index: 00_all_0044-S390-Do-not-use-direct-socket-syscalls-if-build-on-k.patch
296 ===================================================================
297 From 1fd66a522e9262d7ff36b015090f3989f93ba468 Mon Sep 17 00:00:00 2001
298 From: Stefan Liebler <stli@××××××××××××××.com>
299 Date: Thu, 3 Mar 2016 08:17:09 +0100
300 Subject: [PATCH] S390: Do not use direct socket syscalls if build on kernels
301 >= 4.3. [BZ #19682]
302
303 Beginning with Linux 4.3, the kernel headers contain direct
304 system call numbers __NR_socket etc. on s390x. On older kernels,
305 the socket-multiplexer syscall __NR_socketcall was used.
306
307 To enable these new syscalls, the patch
308 "S390: Call direct system calls for socket operations."
309 (https://sourceware.org/git/?p=glibc.git;a=commit;h=016495b818cb61df7d0d10e6db54074271b3e3a5)
310 was applied upstream.
311
312 If glibc 2.23 is configured with --enable-kernel=4.3 and newer,
313 the direct socket syscalls are used.
314 For older kernels, the socket-multiplexer syscall is used instead.
315
316 In glibc 2.22 and earlier, this patch is not applied.
317 If you build glibc on a kernel < 4.3, the socket-multiplexer
318 syscall is used. But if you build glibc on kernel >= 4.3, the
319 direct socket-syscalls are used. If you install this glibc on a
320 kernel < 4.3, all socket operations will fail.
321 See "Bug 19682 - s390x: Incorrect syscall definitions cause
322 breakage with Linux 4.3 headers"
323 (https://sourceware.org/bugzilla/show_bug.cgi?id=19682)
324 The configure switch --enable-kernel does not influence this
325 behaviour on older glibc-releases.
326
327 The solution is to remove the direct socket-syscalls in
328 sysdeps/unix/sysv/linux/s390/s390-64/syscalls.list
329 (this patch) on older glibc-releases as it was done by the
330 upstream patch, too. These entries were never used on s390x,
331 but the c-files in sysdeps/unix/sysv/linux/.
332 After this removal, the behaviour of the socket functions are
333 not changed compared to the original glibc release version
334 and the socket-multiplexer-syscall is always used.
335
336 (cherry picked from commit 425c48c217ef93c2c4f81f9f3bb2fdba096877a2)
337 ---
338 sysdeps/unix/sysv/linux/s390/s390-64/syscalls.list | 19 -------------------
339 1 file changed, 19 deletions(-)
340
341 diff --git a/sysdeps/unix/sysv/linux/s390/s390-64/syscalls.list b/sysdeps/unix/sysv/linux/s390/s390-64/syscalls.list
342 index 5b8c102..9f03d26 100644
343 --- a/sysdeps/unix/sysv/linux/s390/s390-64/syscalls.list
344 +++ b/sysdeps/unix/sysv/linux/s390/s390-64/syscalls.list
345 @@ -12,22 +12,3 @@ shmget - shmget i:iii __shmget shmget
346 semop - semop i:ipi __semop semop
347 semget - semget i:iii __semget semget
348 semctl - semctl i:iiii __semctl semctl
349 -
350 -# proper socket implementations:
351 -accept - accept Ci:iBN __libc_accept __accept accept
352 -bind - bind i:ipi __bind bind
353 -connect - connect Ci:ipi __libc_connect __connect connect
354 -getpeername - getpeername i:ipp __getpeername getpeername
355 -getsockname - getsockname i:ipp __getsockname getsockname
356 -getsockopt - getsockopt i:iiiBN __getsockopt getsockopt
357 -listen - listen i:ii __listen listen
358 -recv - recv Ci:ibni __libc_recv __recv recv
359 -recvfrom - recvfrom Ci:ibniBN __libc_recvfrom __recvfrom recvfrom
360 -recvmsg - recvmsg Ci:ipi __libc_recvmsg __recvmsg recvmsg
361 -send - send Ci:ibni __libc_send __send send
362 -sendmsg - sendmsg Ci:ipi __libc_sendmsg __sendmsg sendmsg
363 -sendto - sendto Ci:ibnibn __libc_sendto __sendto sendto
364 -setsockopt - setsockopt i:iiibn __setsockopt setsockopt
365 -shutdown - shutdown i:ii __shutdown shutdown
366 -socket - socket i:iii __socket socket
367 -socketpair - socketpair i:iiif __socketpair socketpair
368 --
369 2.6.2
370
371
372
373
374 1.1 src/patchsets/glibc/2.22/00_all_0045-sln-use-stat64.patch
375
376 file : http://sources.gentoo.org/viewvc.cgi/gentoo/src/patchsets/glibc/2.22/00_all_0045-sln-use-stat64.patch?rev=1.1&view=markup
377 plain: http://sources.gentoo.org/viewvc.cgi/gentoo/src/patchsets/glibc/2.22/00_all_0045-sln-use-stat64.patch?rev=1.1&content-type=text/plain
378
379 Index: 00_all_0045-sln-use-stat64.patch
380 ===================================================================
381 From 3f749c2e7b8226eb8c6f16fb180987dc7efe35ba Mon Sep 17 00:00:00 2001
382 From: Hongjiu Zhang <noctuorare@×××××.com>
383 Date: Sun, 6 Mar 2016 20:18:21 -0500
384 Subject: [PATCH] sln: use stat64
385
386 When using sln on some filesystems which return 64-bit inodes,
387 the stat call might fail during install like so:
388 .../elf/sln .../elf/symlink.list
389 /lib32/libc.so.6: invalid destination: Value too large for defined data type
390 /lib32/ld-linux.so.2: invalid destination: Value too large for defined data type
391 Makefile:104: recipe for target 'install-symbolic-link' failed
392
393 Switch to using stat64 all the time to avoid this.
394
395 URL: https://bugs.gentoo.org/576396
396 (cherry picked from commit f5e753c8c3a18a1e3c715dd11bf4dc341b5c481f)
397 (cherry picked from commit d6778fc4b0039b2116f88218212618ca357fee2f)
398 ---
399 ChangeLog | 5 +++++
400 elf/sln.c | 4 ++--
401 2 files changed, 7 insertions(+), 2 deletions(-)
402
403 diff --git a/ChangeLog b/ChangeLog
404 index 95cc5a2..7663053 100644
405 --- a/ChangeLog
406 +++ b/ChangeLog
407 @@ -1,3 +1,8 @@
408 +2016-03-07 Hongjiu Zhang <noctuorare@×××××.com>
409 +
410 + * elf/sln.c (makesymlink): Change struct stat to stat64, and lstat
411 + to lstat64.
412 +
413 2015-08-05 Mike Frysinger <vapier@g.o>
414
415 * nptl/allocatestack.c (allocate_stack): Move stacktop decl down to
416 diff --git a/elf/sln.c b/elf/sln.c
417 index 1a7d24e..c6601fd 100644
418 --- a/elf/sln.c
419 +++ b/elf/sln.c
420 @@ -167,11 +167,11 @@ makesymlink (src, dest)
421 const char *src;
422 const char *dest;
423 {
424 - struct stat stats;
425 + struct stat64 stats;
426 const char *error;
427
428 /* Destination must not be a directory. */
429 - if (lstat (dest, &stats) == 0)
430 + if (lstat64 (dest, &stats) == 0)
431 {
432 if (S_ISDIR (stats.st_mode))
433 {
434 --
435 2.6.2