Generic ones were broken on x86_64, pthread/ex2 test failed while pthread/ex5
worked fine. So use arch-specific functions and fix linkage failure with
__pthread_mutex_cond_lock_adjust.

Signed-off-by: Roman I Khimov <[email protected]>
---
 libpthread/nptl/pthread_mutex_lock.c               |    2 +-
 .../sysdeps/unix/sysv/linux/x86_64/Makefile.arch   |    5 +++--
 2 files changed, 4 insertions(+), 3 deletions(-)

diff --git a/libpthread/nptl/pthread_mutex_lock.c 
b/libpthread/nptl/pthread_mutex_lock.c
index 6abf323..78b6671 100644
--- a/libpthread/nptl/pthread_mutex_lock.c
+++ b/libpthread/nptl/pthread_mutex_lock.c
@@ -477,7 +477,7 @@ strong_alias (__pthread_mutex_lock, 
__pthread_mutex_lock_internal)
 
 
 #ifdef NO_INCR
-void
+void attribute_protected
 __pthread_mutex_cond_lock_adjust (
      pthread_mutex_t *mutex)
 {
diff --git a/libpthread/nptl/sysdeps/unix/sysv/linux/x86_64/Makefile.arch 
b/libpthread/nptl/sysdeps/unix/sysv/linux/x86_64/Makefile.arch
index e481f93..40d9b9d 100644
--- a/libpthread/nptl/sysdeps/unix/sysv/linux/x86_64/Makefile.arch
+++ b/libpthread/nptl/sysdeps/unix/sysv/linux/x86_64/Makefile.arch
@@ -18,8 +18,7 @@ libpthread_SSRC += lowlevellock.S pthread_barrier_wait.S 
pthread_cond_signal.S p
                   sem_post.S sem_timedwait.S lowlevelrobustlock.S \
                   sem_trywait.S sem_wait.S pthread_rwlock_rdlock.S 
pthread_rwlock_wrlock.S \
                   pthread_rwlock_timedrdlock.S pthread_rwlock_timedwrlock.S 
pthread_rwlock_unlock.S \
-                  pthread_spin_unlock.S cancellation.S
-# pthread_cond_timedwait.S pthread_cond_wait.S
+                  pthread_spin_unlock.S cancellation.S 
pthread_cond_timedwait.S pthread_cond_wait.S
 libc_a_SSRC += libc-lowlevellock.S
 librt_a_SSRC += librt-lowlevellock.S
 
@@ -39,6 +38,8 @@ ASFLAGS-cancellation.S = -DNOT_IN_libc=1 -DIS_IN_libpthread=1 
-D_LIBC_REENTRANT
 
 ASFLAGS-clone.S = -D_LIBC_REENTRANT
 ASFLAGS-vfork.S = -D_LIBC_REENTRANT
+ASFLAGS-pthread_cond_timedwait.S = -D_LIBC_REENTRANT
+ASFLAGS-pthread_cond_wait.S = -D_LIBC_REENTRANT
 ASFLAGS-libc-lowlevellock.S = -D_LIBC_REENTRANT
 ASFLAGS-libc-cancellation.S = -D_LIBC_REENTRANT
 
-- 
1.5.6.5

_______________________________________________
uClibc mailing list
[email protected]
http://lists.busybox.net/mailman/listinfo/uclibc

Reply via email to