Magellan Linux

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

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1835 - (hide annotations) (download)
Wed Jul 11 12:34:38 2012 UTC (11 years, 10 months ago) by niro
File size: 5393 byte(s)
-fixed patch for 2.16.0
1 niro 1835 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