Annotation of /trunk/glibc/patches/glibc-2.15-revert-c5a0802a.patch
Parent Directory | Revision Log
Revision 1806 -
(hide annotations)
(download)
Tue Jun 12 12:33:27 2012 UTC (12 years, 3 months ago) by niro
File size: 5499 byte(s)
Tue Jun 12 12:33:27 2012 UTC (12 years, 3 months ago) by niro
File size: 5499 byte(s)
-added patches for 2.15-r1
1 | niro | 1806 | 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 | |||
122 | #include <kernel-features.h> | ||
123 | |||
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 | - cmpq $-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 | - cmpq $-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 | - movq dep_mutex(%rdi), %r8 | ||
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 | |||
227 | |||
228 | Only in b/nptl/sysdeps/unix/sysv/linux/x86_64: pthread_cond_wait.S.orig | ||
229 | Only in b/nptl/sysdeps/unix/sysv/linux/x86_64: pthread_cond_wait.S.rej |