From 1f61bbd8a58e9255f45774541d76ed0bbdc05f09 Mon Sep 17 00:00:00 2001 From: Eric Andersen Date: Sat, 9 Dec 2006 01:32:13 +0000 Subject: silence a lot of warnings and fix a few genuine bugs while I'm at it. --- libc/sysdeps/linux/common/bits/uClibc_pthread.h | 20 +++++++++++++++----- 1 file changed, 15 insertions(+), 5 deletions(-) (limited to 'libc/sysdeps/linux/common/bits/uClibc_pthread.h') diff --git a/libc/sysdeps/linux/common/bits/uClibc_pthread.h b/libc/sysdeps/linux/common/bits/uClibc_pthread.h index 3d25ac4e8..367f380af 100644 --- a/libc/sysdeps/linux/common/bits/uClibc_pthread.h +++ b/libc/sysdeps/linux/common/bits/uClibc_pthread.h @@ -28,11 +28,21 @@ #endif #if defined _LIBC && (defined IS_IN_libc || defined NOT_IN_libc) -extern int __pthread_mutex_init (pthread_mutex_t *__restrict __mutex, - __const pthread_mutexattr_t *__restrict __mutex_attr) attribute_hidden; -extern int __pthread_mutex_trylock (pthread_mutex_t *__mutex) attribute_hidden; -extern int __pthread_mutex_lock (pthread_mutex_t *__mutex) attribute_hidden; -extern int __pthread_mutex_unlock (pthread_mutex_t *__mutex) attribute_hidden; +/* Threading functions internal to uClibc. Make these thread functions + * weak so that we can elide them from single-threaded processes. */ +extern int weak_function __pthread_mutex_init (pthread_mutex_t *__mutex, + __const pthread_mutexattr_t *__mutex_attr); +extern int weak_function __pthread_mutex_destroy (pthread_mutex_t *__mutex); +extern int weak_function __pthread_mutex_lock (pthread_mutex_t *__mutex); +extern int weak_function __pthread_mutex_unlock (pthread_mutex_t *__mutex); +extern void __uclibc_mutex_unlock (void *) attribute_hidden; +extern int weak_function __pthread_mutex_trylock (pthread_mutex_t *__mutex); +extern void weak_function _pthread_cleanup_push_defer ( + struct _pthread_cleanup_buffer *__buffer, + void (*__routine) (void *), void *__arg); +extern void weak_function _pthread_cleanup_pop_restore ( + struct _pthread_cleanup_buffer *__buffer, + int __execute); #endif #endif -- cgit v1.2.3