Magellan Linux

Contents of /trunk/glibc/patches/glibc-2.16.0-revert-c5a0802a.patch

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1835 - (show annotations) (download)
Wed Jul 11 12:34:38 2012 UTC (11 years, 9 months ago) by niro
File size: 5393 byte(s)
-fixed patch for 2.16.0
1 diff -rup a/nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S b/nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S
2 --- a/nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S 2011-12-22 18:04:12.937212834 +0000
3 +++ b/nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S 2011-12-22 18:04:42.104222278 +0000
4 @@ -137,7 +137,6 @@ __pthread_cond_wait:
5 cmpl $PI_BIT, %eax
6 jne 18f
7
8 -90:
9 movl $(FUTEX_WAIT_REQUEUE_PI|FUTEX_PRIVATE_FLAG), %ecx
10 movl %ebp, %edx
11 xorl %esi, %esi
12 @@ -151,9 +150,6 @@ __pthread_cond_wait:
13 sete 16(%esp)
14 je 19f
15
16 - cmpl $-EAGAIN, %eax
17 - je 91f
18 -
19 /* Normal and PI futexes dont mix. Use normal futex functions only
20 if the kernel does not support the PI futex functions. */
21 cmpl $-ENOSYS, %eax
22 @@ -398,78 +394,6 @@ __pthread_cond_wait:
23 #endif
24 call __lll_unlock_wake
25 jmp 11b
26 -
27 -91:
28 -.LcleanupSTART2:
29 - /* FUTEX_WAIT_REQUEUE_PI returned EAGAIN. We need to
30 - call it again. */
31 -
32 - /* Get internal lock. */
33 - movl $1, %edx
34 - xorl %eax, %eax
35 - LOCK
36 -#if cond_lock == 0
37 - cmpxchgl %edx, (%ebx)
38 -#else
39 - cmpxchgl %edx, cond_lock(%ebx)
40 -#endif
41 - jz 92f
42 -
43 -#if cond_lock == 0
44 - movl %ebx, %edx
45 -#else
46 - leal cond_lock(%ebx), %edx
47 -#endif
48 -#if (LLL_SHARED-LLL_PRIVATE) > 255
49 - xorl %ecx, %ecx
50 -#endif
51 - cmpl $-1, dep_mutex(%ebx)
52 - setne %cl
53 - subl $1, %ecx
54 - andl $(LLL_SHARED-LLL_PRIVATE), %ecx
55 -#if LLL_PRIVATE != 0
56 - addl $LLL_PRIVATE, %ecx
57 -#endif
58 - call __lll_lock_wait
59 -
60 -92:
61 - /* Increment the cond_futex value again, so it can be used as a new
62 - expected value. */
63 - addl $1, cond_futex(%ebx)
64 - movl cond_futex(%ebx), %ebp
65 -
66 - /* Unlock. */
67 - LOCK
68 -#if cond_lock == 0
69 - subl $1, (%ebx)
70 -#else
71 - subl $1, cond_lock(%ebx)
72 -#endif
73 - je 93f
74 -#if cond_lock == 0
75 - movl %ebx, %eax
76 -#else
77 - leal cond_lock(%ebx), %eax
78 -#endif
79 -#if (LLL_SHARED-LLL_PRIVATE) > 255
80 - xorl %ecx, %ecx
81 -#endif
82 - cmpl $-1, dep_mutex(%ebx)
83 - setne %cl
84 - subl $1, %ecx
85 - andl $(LLL_SHARED-LLL_PRIVATE), %ecx
86 -#if LLL_PRIVATE != 0
87 - addl $LLL_PRIVATE, %ecx
88 -#endif
89 - call __lll_unlock_wake
90 -
91 -93:
92 - /* Set the rest of SYS_futex args for FUTEX_WAIT_REQUEUE_PI. */
93 - xorl %ecx, %ecx
94 - movl dep_mutex(%ebx), %edi
95 - jmp 90b
96 -.LcleanupEND2:
97 -
98 .size __pthread_cond_wait, .-__pthread_cond_wait
99 versioned_symbol (libpthread, __pthread_cond_wait, pthread_cond_wait,
100 GLIBC_2_3_2)
101 @@ -642,10 +566,6 @@ __condvar_w_cleanup:
102 .long .LcleanupEND-.Lsub_cond_futex
103 .long __condvar_w_cleanup-.LSTARTCODE
104 .uleb128 0
105 - .long .LcleanupSTART2-.LSTARTCODE
106 - .long .LcleanupEND2-.LcleanupSTART2
107 - .long __condvar_w_cleanup-.LSTARTCODE
108 - .uleb128 0
109 .long .LcallUR-.LSTARTCODE
110 .long .LENDCODE-.LcallUR
111 .long 0
112 Only in b/nptl/sysdeps/unix/sysv/linux/i386/i486: pthread_cond_wait.S.orig
113 diff -rup a/nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S b/nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S
114 --- a/nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S 2011-12-22 18:04:12.941212837 +0000
115 +++ b/nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S 2011-12-22 18:05:05.155229737 +0000
116 @@ -23,7 +23,6 @@
117 #include <lowlevelcond.h>
118 #include <tcb-offsets.h>
119 #include <pthread-pi-defines.h>
120 -#include <pthread-errnos.h>
121 #include <stap-probe.h>
122
123 #include <kernel-features.h>
124 @@ -137,14 +136,11 @@ __pthread_cond_wait:
125 cmpl $PI_BIT, %eax
126 jne 61f
127
128 -90:
129 movl $(FUTEX_WAIT_REQUEUE_PI|FUTEX_PRIVATE_FLAG), %esi
130 movl $SYS_futex, %eax
131 syscall
132
133 movl $1, %r8d
134 - cmpq $-EAGAIN, %rax
135 - je 91f
136 #ifdef __ASSUME_REQUEUE_PI
137 jmp 62f
138 #else
139 @@ -331,70 +327,6 @@ __pthread_cond_wait:
140
141 13: movq %r10, %rax
142 jmp 14b
143 -
144 -91:
145 -.LcleanupSTART2:
146 - /* FUTEX_WAIT_REQUEUE_PI returned EAGAIN. We need to
147 - call it again. */
148 - movq 8(%rsp), %rdi
149 -
150 - /* Get internal lock. */
151 - movl $1, %esi
152 - xorl %eax, %eax
153 - LOCK
154 -#if cond_lock == 0
155 - cmpxchgl %esi, (%rdi)
156 -#else
157 - cmpxchgl %esi, cond_lock(%rdi)
158 -#endif
159 - jz 92f
160 -
161 -#if cond_lock != 0
162 - addq $cond_lock, %rdi
163 -#endif
164 - LP_OP(cmp) $-1, dep_mutex-cond_lock(%rdi)
165 - movl $LLL_PRIVATE, %eax
166 - movl $LLL_SHARED, %esi
167 - cmovne %eax, %esi
168 - callq __lll_lock_wait
169 -#if cond_lock != 0
170 - subq $cond_lock, %rdi
171 -#endif
172 -92:
173 - /* Increment the cond_futex value again, so it can be used as a new
174 - expected value. */
175 - incl cond_futex(%rdi)
176 - movl cond_futex(%rdi), %edx
177 -
178 - /* Release internal lock. */
179 - LOCK
180 -#if cond_lock == 0
181 - decl (%rdi)
182 -#else
183 - decl cond_lock(%rdi)
184 -#endif
185 - jz 93f
186 -
187 -#if cond_lock != 0
188 - addq $cond_lock, %rdi
189 -#endif
190 - LP_OP(cmp) $-1, dep_mutex-cond_lock(%rdi)
191 - movl $LLL_PRIVATE, %eax
192 - movl $LLL_SHARED, %esi
193 - cmovne %eax, %esi
194 - /* The call preserves %rdx. */
195 - callq __lll_unlock_wake
196 -#if cond_lock != 0
197 - subq $cond_lock, %rdi
198 -#endif
199 -93:
200 - /* Set the rest of SYS_futex args for FUTEX_WAIT_REQUEUE_PI. */
201 - xorq %r10, %r10
202 - mov dep_mutex(%rdi), %R8_LP
203 - leaq cond_futex(%rdi), %rdi
204 - jmp 90b
205 -.LcleanupEND2:
206 -
207 .size __pthread_cond_wait, .-__pthread_cond_wait
208 versioned_symbol (libpthread, __pthread_cond_wait, pthread_cond_wait,
209 GLIBC_2_3_2)
210 @@ -547,15 +479,11 @@ __condvar_cleanup1:
211 .uleb128 .LcleanupSTART-.LSTARTCODE
212 .uleb128 .LcleanupEND-.LcleanupSTART
213 .uleb128 __condvar_cleanup1-.LSTARTCODE
214 - .uleb128 0
215 - .uleb128 .LcleanupSTART2-.LSTARTCODE
216 - .uleb128 .LcleanupEND2-.LcleanupSTART2
217 - .uleb128 __condvar_cleanup1-.LSTARTCODE
218 - .uleb128 0
219 + .uleb128 0
220 .uleb128 .LcallUR-.LSTARTCODE
221 .uleb128 .LENDCODE-.LcallUR
222 .uleb128 0
223 - .uleb128 0
224 + .uleb128 0
225 .Lcstend:
226