|
@@ -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
|