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 |