1 diff --git b/nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S a/nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S
2 index 54590b7..53970d7 100644
3 --- b/nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S
4 +++ a/nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S
5 @@ -134,7 +134,6 @@ __pthread_cond_wait:
10 movl $(FUTEX_WAIT_REQUEUE_PI|FUTEX_PRIVATE_FLAG), %ecx
13 @@ -148,9 +147,6 @@ __pthread_cond_wait:
20 /* Normal and PI futexes dont mix. Use normal futex functions only
21 if the kernel does not support the PI futex functions. */
23 @@ -395,78 +391,6 @@ __pthread_cond_wait:
25 call __lll_unlock_wake
30 - /* FUTEX_WAIT_REQUEUE_PI returned EAGAIN. We need to
33 - /* Get internal lock. */
38 - cmpxchgl %edx, (%ebx)
40 - cmpxchgl %edx, cond_lock(%ebx)
47 - leal cond_lock(%ebx), %edx
49 -#if (LLL_SHARED-LLL_PRIVATE) > 255
52 - cmpl $-1, dep_mutex(%ebx)
55 - andl $(LLL_SHARED-LLL_PRIVATE), %ecx
57 - addl $LLL_PRIVATE, %ecx
59 - call __lll_lock_wait
62 - /* Increment the cond_futex value again, so it can be used as a new
64 - addl $1, cond_futex(%ebx)
65 - movl cond_futex(%ebx), %ebp
72 - subl $1, cond_lock(%ebx)
78 - leal cond_lock(%ebx), %eax
80 -#if (LLL_SHARED-LLL_PRIVATE) > 255
83 - cmpl $-1, dep_mutex(%ebx)
86 - andl $(LLL_SHARED-LLL_PRIVATE), %ecx
88 - addl $LLL_PRIVATE, %ecx
90 - call __lll_unlock_wake
93 - /* Set the rest of SYS_futex args for FUTEX_WAIT_REQUEUE_PI. */
95 - movl dep_mutex(%ebx), %edi
99 .size __pthread_cond_wait, .-__pthread_cond_wait
100 versioned_symbol (libpthread, __pthread_cond_wait, pthread_cond_wait,
102 @@ -639,10 +563,6 @@ __condvar_w_cleanup:
103 .long .LcleanupEND-.Lsub_cond_futex
104 .long __condvar_w_cleanup-.LSTARTCODE
106 - .long .LcleanupSTART2-.LSTARTCODE
107 - .long .LcleanupEND2-.LcleanupSTART2
108 - .long __condvar_w_cleanup-.LSTARTCODE
110 .long .LcallUR-.LSTARTCODE
111 .long .LENDCODE-.LcallUR
113 diff --git b/nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S a/nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S
114 index d837d15..7535baa 100644
115 --- b/nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S
116 +++ a/nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S
118 #include <lowlevelcond.h>
119 #include <tcb-offsets.h>
120 #include <pthread-pi-defines.h>
121 -#include <pthread-errnos.h>
123 #include <kernel-features.h>
125 @@ -134,14 +133,11 @@ __pthread_cond_wait:
130 movl $(FUTEX_WAIT_REQUEUE_PI|FUTEX_PRIVATE_FLAG), %esi
131 movl $SYS_futex, %eax
135 - cmpq $-EAGAIN, %rax
137 #ifdef __ASSUME_REQUEUE_PI
140 @@ -328,70 +324,6 @@ __pthread_cond_wait:
147 - /* FUTEX_WAIT_REQUEUE_PI returned EAGAIN. We need to
151 - /* Get internal lock. */
156 - cmpxchgl %esi, (%rdi)
158 - cmpxchgl %esi, cond_lock(%rdi)
163 - addq $cond_lock, %rdi
165 - cmpq $-1, dep_mutex-cond_lock(%rdi)
166 - movl $LLL_PRIVATE, %eax
167 - movl $LLL_SHARED, %esi
169 - callq __lll_lock_wait
171 - subq $cond_lock, %rdi
174 - /* Increment the cond_futex value again, so it can be used as a new
176 - incl cond_futex(%rdi)
177 - movl cond_futex(%rdi), %edx
179 - /* Release internal lock. */
184 - decl cond_lock(%rdi)
189 - addq $cond_lock, %rdi
191 - cmpq $-1, dep_mutex-cond_lock(%rdi)
192 - movl $LLL_PRIVATE, %eax
193 - movl $LLL_SHARED, %esi
195 - /* The call preserves %rdx. */
196 - callq __lll_unlock_wake
198 - subq $cond_lock, %rdi
201 - /* Set the rest of SYS_futex args for FUTEX_WAIT_REQUEUE_PI. */
203 - movq dep_mutex(%rdi), %r8
204 - leaq cond_futex(%rdi), %rdi
208 .size __pthread_cond_wait, .-__pthread_cond_wait
209 versioned_symbol (libpthread, __pthread_cond_wait, pthread_cond_wait,
211 @@ -544,15 +476,11 @@ __condvar_cleanup1:
212 .uleb128 .LcleanupSTART-.LSTARTCODE
213 .uleb128 .LcleanupEND-.LcleanupSTART
214 .uleb128 __condvar_cleanup1-.LSTARTCODE
216 - .uleb128 .LcleanupSTART2-.LSTARTCODE
217 - .uleb128 .LcleanupEND2-.LcleanupSTART2
218 - .uleb128 __condvar_cleanup1-.LSTARTCODE
221 .uleb128 .LcallUR-.LSTARTCODE
222 .uleb128 .LENDCODE-.LcallUR