[git commit nptl] nptl: mark forwarded functions protected

Timo Teras timo.teras at iki.fi
Wed Apr 14 17:58:30 UTC 2010


commit: http://git.uclibc.org/uClibc/commit/?id=a501a33e9761f32b3d38ab9f113892abe7cef3f1
branch: http://git.uclibc.org/uClibc/commit/?id=refs/heads/nptl

The libc stubs should never override the libpthread provided
functions inside libpthread, otherwise the struct pthread_functions
that is used by the forwarder stubs goes bad.

Signed-off-by: Timo Teras <timo.teras at iki.fi>
Signed-off-by: Austin Foxley <austinf at cetoncorp.com>
---
 libpthread/nptl/cleanup_defer_compat.c             |    2 ++
 libpthread/nptl/pt-cleanup.c                       |    1 +
 libpthread/nptl/pthread_attr_destroy.c             |    1 +
 libpthread/nptl/pthread_attr_getdetachstate.c      |    1 +
 libpthread/nptl/pthread_attr_getinheritsched.c     |    1 +
 libpthread/nptl/pthread_attr_getschedparam.c       |    1 +
 libpthread/nptl/pthread_attr_getschedpolicy.c      |    1 +
 libpthread/nptl/pthread_attr_getscope.c            |    1 +
 libpthread/nptl/pthread_attr_init.c                |    1 +
 libpthread/nptl/pthread_attr_setdetachstate.c      |    1 +
 libpthread/nptl/pthread_attr_setinheritsched.c     |    1 +
 libpthread/nptl/pthread_attr_setschedparam.c       |    1 +
 libpthread/nptl/pthread_attr_setschedpolicy.c      |    1 +
 libpthread/nptl/pthread_attr_setscope.c            |    1 +
 libpthread/nptl/pthread_cond_destroy.c             |    1 +
 libpthread/nptl/pthread_cond_init.c                |    1 +
 libpthread/nptl/pthread_condattr_destroy.c         |    1 +
 libpthread/nptl/pthread_condattr_init.c            |    1 +
 libpthread/nptl/pthread_equal.c                    |    1 +
 libpthread/nptl/pthread_exit.c                     |    1 +
 libpthread/nptl/pthread_getschedparam.c            |    1 +
 libpthread/nptl/pthread_getspecific.c              |    1 +
 libpthread/nptl/pthread_key_create.c               |    1 +
 libpthread/nptl/pthread_mutex_destroy.c            |    1 +
 libpthread/nptl/pthread_mutex_init.c               |    1 +
 libpthread/nptl/pthread_mutex_lock.c               |    1 +
 libpthread/nptl/pthread_mutex_unlock.c             |    1 +
 libpthread/nptl/pthread_self.c                     |    1 +
 libpthread/nptl/pthread_setcancelstate.c           |    1 +
 libpthread/nptl/pthread_setcanceltype.c            |    1 +
 libpthread/nptl/pthread_setschedparam.c            |    1 +
 libpthread/nptl/pthread_setspecific.c              |    1 +
 .../nptl/sysdeps/pthread/pthread_cond_broadcast.c  |    1 +
 .../nptl/sysdeps/pthread/pthread_cond_signal.c     |    1 +
 .../nptl/sysdeps/pthread/pthread_cond_timedwait.c  |    1 +
 .../nptl/sysdeps/pthread/pthread_cond_wait.c       |    1 +
 .../nptl/sysdeps/pthread/pthread_rwlock_rdlock.c   |    1 +
 .../nptl/sysdeps/pthread/pthread_rwlock_unlock.c   |    1 +
 .../nptl/sysdeps/pthread/pthread_rwlock_wrlock.c   |    1 +
 .../sysdeps/unix/sysv/linux/alpha/pthread_once.c   |    1 +
 .../sysdeps/unix/sysv/linux/arm/pthread_once.c     |    1 +
 .../sysv/linux/i386/i486/pthread_cond_broadcast.S  |    1 +
 .../sysv/linux/i386/i486/pthread_cond_signal.S     |    1 +
 .../sysv/linux/i386/i486/pthread_cond_timedwait.S  |    1 +
 .../unix/sysv/linux/i386/i486/pthread_cond_wait.S  |    1 +
 .../sysv/linux/i386/i486/pthread_rwlock_rdlock.S   |    1 +
 .../sysv/linux/i386/i486/pthread_rwlock_unlock.S   |    1 +
 .../sysv/linux/i386/i486/pthread_rwlock_wrlock.S   |    1 +
 .../sysdeps/unix/sysv/linux/i386/pthread_once.S    |    1 +
 .../sysdeps/unix/sysv/linux/mips/pthread_once.c    |    1 +
 .../sysdeps/unix/sysv/linux/powerpc/pthread_once.c |    1 +
 .../unix/sysv/linux/sh/pthread_cond_broadcast.S    |    1 +
 .../unix/sysv/linux/sh/pthread_cond_signal.S       |    1 +
 .../unix/sysv/linux/sh/pthread_cond_timedwait.S    |    1 +
 .../sysdeps/unix/sysv/linux/sh/pthread_cond_wait.S |    1 +
 .../nptl/sysdeps/unix/sysv/linux/sh/pthread_once.S |    1 +
 .../unix/sysv/linux/sh/pthread_rwlock_rdlock.S     |    1 +
 .../unix/sysv/linux/sh/pthread_rwlock_unlock.S     |    1 +
 .../unix/sysv/linux/sh/pthread_rwlock_wrlock.S     |    1 +
 .../sysdeps/unix/sysv/linux/sparc/pthread_once.c   |    1 +
 .../sysv/linux/x86_64/pthread_cond_broadcast.S     |    1 +
 .../unix/sysv/linux/x86_64/pthread_cond_signal.S   |    1 +
 .../sysv/linux/x86_64/pthread_cond_timedwait.S     |    1 +
 .../unix/sysv/linux/x86_64/pthread_cond_wait.S     |    1 +
 .../sysdeps/unix/sysv/linux/x86_64/pthread_once.S  |    1 +
 .../unix/sysv/linux/x86_64/pthread_rwlock_rdlock.S |    1 +
 .../unix/sysv/linux/x86_64/pthread_rwlock_unlock.S |    1 +
 .../unix/sysv/linux/x86_64/pthread_rwlock_wrlock.S |    1 +
 libpthread/nptl/unwind.c                           |    1 +
 69 files changed, 70 insertions(+), 0 deletions(-)

diff --git a/libpthread/nptl/cleanup_defer_compat.c b/libpthread/nptl/cleanup_defer_compat.c
index 8fd9b54..95fa4a0 100644
--- a/libpthread/nptl/cleanup_defer_compat.c
+++ b/libpthread/nptl/cleanup_defer_compat.c
@@ -21,6 +21,7 @@
 
 
 void
+attribute_protected
 _pthread_cleanup_push_defer (
      struct _pthread_cleanup_buffer *buffer,
      void (*routine) (void *),
@@ -60,6 +61,7 @@ strong_alias (_pthread_cleanup_push_defer, __pthread_cleanup_push_defer)
 
 
 void
+attribute_protected
 _pthread_cleanup_pop_restore (
      struct _pthread_cleanup_buffer *buffer,
      int execute)
diff --git a/libpthread/nptl/pt-cleanup.c b/libpthread/nptl/pt-cleanup.c
index f72ea26..97673b6 100644
--- a/libpthread/nptl/pt-cleanup.c
+++ b/libpthread/nptl/pt-cleanup.c
@@ -23,6 +23,7 @@
 #include <jmpbuf-unwind.h>
 
 void
+attribute_protected
 __pthread_cleanup_upto (__jmp_buf target, char *targetframe)
 {
   struct pthread *self = THREAD_SELF;
diff --git a/libpthread/nptl/pthread_attr_destroy.c b/libpthread/nptl/pthread_attr_destroy.c
index b8e6a37..52bffaf 100644
--- a/libpthread/nptl/pthread_attr_destroy.c
+++ b/libpthread/nptl/pthread_attr_destroy.c
@@ -24,6 +24,7 @@
 #include "pthreadP.h"
 
 int
+attribute_protected
 __pthread_attr_destroy (
      pthread_attr_t *attr)
 {
diff --git a/libpthread/nptl/pthread_attr_getdetachstate.c b/libpthread/nptl/pthread_attr_getdetachstate.c
index 5f549ba..a55d516 100644
--- a/libpthread/nptl/pthread_attr_getdetachstate.c
+++ b/libpthread/nptl/pthread_attr_getdetachstate.c
@@ -22,6 +22,7 @@
 
 
 int
+attribute_protected
 __pthread_attr_getdetachstate (
      const pthread_attr_t *attr,
      int *detachstate)
diff --git a/libpthread/nptl/pthread_attr_getinheritsched.c b/libpthread/nptl/pthread_attr_getinheritsched.c
index 3ff3040..f94f6b0 100644
--- a/libpthread/nptl/pthread_attr_getinheritsched.c
+++ b/libpthread/nptl/pthread_attr_getinheritsched.c
@@ -22,6 +22,7 @@
 
 
 int
+attribute_protected
 __pthread_attr_getinheritsched (
      const pthread_attr_t *attr,
      int *inherit)
diff --git a/libpthread/nptl/pthread_attr_getschedparam.c b/libpthread/nptl/pthread_attr_getschedparam.c
index 82b2371..2f515b1 100644
--- a/libpthread/nptl/pthread_attr_getschedparam.c
+++ b/libpthread/nptl/pthread_attr_getschedparam.c
@@ -23,6 +23,7 @@
 
 
 int
+attribute_protected
 __pthread_attr_getschedparam (
         const pthread_attr_t *attr,
         struct sched_param *param)
diff --git a/libpthread/nptl/pthread_attr_getschedpolicy.c b/libpthread/nptl/pthread_attr_getschedpolicy.c
index 7b8f1de..924a462 100644
--- a/libpthread/nptl/pthread_attr_getschedpolicy.c
+++ b/libpthread/nptl/pthread_attr_getschedpolicy.c
@@ -22,6 +22,7 @@
 
 
 int
+attribute_protected
 __pthread_attr_getschedpolicy (
      const pthread_attr_t *attr,
      int *policy)
diff --git a/libpthread/nptl/pthread_attr_getscope.c b/libpthread/nptl/pthread_attr_getscope.c
index 9b05ffa..aaaf6b9 100644
--- a/libpthread/nptl/pthread_attr_getscope.c
+++ b/libpthread/nptl/pthread_attr_getscope.c
@@ -22,6 +22,7 @@
 
 
 int
+attribute_protected
 __pthread_attr_getscope (
      const pthread_attr_t *attr,
      int *scope)
diff --git a/libpthread/nptl/pthread_attr_init.c b/libpthread/nptl/pthread_attr_init.c
index 65ce4e5..6de309d 100644
--- a/libpthread/nptl/pthread_attr_init.c
+++ b/libpthread/nptl/pthread_attr_init.c
@@ -29,6 +29,7 @@ int __attr_list_lock = LLL_LOCK_INITIALIZER;
 
 
 int
+attribute_protected
 __pthread_attr_init_2_1 (
      pthread_attr_t *attr)
 {
diff --git a/libpthread/nptl/pthread_attr_setdetachstate.c b/libpthread/nptl/pthread_attr_setdetachstate.c
index b6d9bb5..a038cbd 100644
--- a/libpthread/nptl/pthread_attr_setdetachstate.c
+++ b/libpthread/nptl/pthread_attr_setdetachstate.c
@@ -23,6 +23,7 @@
 
 
 int
+attribute_protected
 __pthread_attr_setdetachstate (pthread_attr_t *attr, int detachstate)
 {
   struct pthread_attr *iattr;
diff --git a/libpthread/nptl/pthread_attr_setinheritsched.c b/libpthread/nptl/pthread_attr_setinheritsched.c
index 9d0234a..3fc92e5 100644
--- a/libpthread/nptl/pthread_attr_setinheritsched.c
+++ b/libpthread/nptl/pthread_attr_setinheritsched.c
@@ -23,6 +23,7 @@
 
 
 int
+attribute_protected
 __pthread_attr_setinheritsched (
      pthread_attr_t *attr,
      int inherit)
diff --git a/libpthread/nptl/pthread_attr_setschedparam.c b/libpthread/nptl/pthread_attr_setschedparam.c
index 741e641..13f7313 100644
--- a/libpthread/nptl/pthread_attr_setschedparam.c
+++ b/libpthread/nptl/pthread_attr_setschedparam.c
@@ -24,6 +24,7 @@
 
 
 int
+attribute_protected
 __pthread_attr_setschedparam (
      pthread_attr_t *attr,
      const struct sched_param *param)
diff --git a/libpthread/nptl/pthread_attr_setschedpolicy.c b/libpthread/nptl/pthread_attr_setschedpolicy.c
index 1d87b53..bcc69ba 100644
--- a/libpthread/nptl/pthread_attr_setschedpolicy.c
+++ b/libpthread/nptl/pthread_attr_setschedpolicy.c
@@ -23,6 +23,7 @@
 
 
 int
+attribute_protected
 __pthread_attr_setschedpolicy (
      pthread_attr_t *attr,
      int policy)
diff --git a/libpthread/nptl/pthread_attr_setscope.c b/libpthread/nptl/pthread_attr_setscope.c
index cc4e467..b9b752f 100644
--- a/libpthread/nptl/pthread_attr_setscope.c
+++ b/libpthread/nptl/pthread_attr_setscope.c
@@ -23,6 +23,7 @@
 
 
 int
+attribute_protected
 __pthread_attr_setscope (
      pthread_attr_t *attr,
      int scope)
diff --git a/libpthread/nptl/pthread_cond_destroy.c b/libpthread/nptl/pthread_cond_destroy.c
index b67b535..cb49ce1 100644
--- a/libpthread/nptl/pthread_cond_destroy.c
+++ b/libpthread/nptl/pthread_cond_destroy.c
@@ -22,6 +22,7 @@
 
 
 int
+attribute_protected
 __pthread_cond_destroy (
      pthread_cond_t *cond)
 {
diff --git a/libpthread/nptl/pthread_cond_init.c b/libpthread/nptl/pthread_cond_init.c
index dec6444..f7187a3 100644
--- a/libpthread/nptl/pthread_cond_init.c
+++ b/libpthread/nptl/pthread_cond_init.c
@@ -22,6 +22,7 @@
 
 
 int
+attribute_protected
 __pthread_cond_init (
      pthread_cond_t *cond,
      const pthread_condattr_t *cond_attr)
diff --git a/libpthread/nptl/pthread_condattr_destroy.c b/libpthread/nptl/pthread_condattr_destroy.c
index bdb6441..dcaaa0f 100644
--- a/libpthread/nptl/pthread_condattr_destroy.c
+++ b/libpthread/nptl/pthread_condattr_destroy.c
@@ -21,6 +21,7 @@
 
 
 int
+attribute_protected
 __pthread_condattr_destroy (pthread_condattr_t *attr)
 {
   /* Nothing to be done.  */
diff --git a/libpthread/nptl/pthread_condattr_init.c b/libpthread/nptl/pthread_condattr_init.c
index d22ca1e..7cd82a8 100644
--- a/libpthread/nptl/pthread_condattr_init.c
+++ b/libpthread/nptl/pthread_condattr_init.c
@@ -22,6 +22,7 @@
 
 
 int
+attribute_protected
 __pthread_condattr_init (pthread_condattr_t *attr)
 {
   memset (attr, '\0', sizeof (*attr));
diff --git a/libpthread/nptl/pthread_equal.c b/libpthread/nptl/pthread_equal.c
index 8587e0f..c454a48 100644
--- a/libpthread/nptl/pthread_equal.c
+++ b/libpthread/nptl/pthread_equal.c
@@ -21,6 +21,7 @@
 
 
 int
+attribute_protected
 __pthread_equal (pthread_t thread1, pthread_t thread2)
 {
   return thread1 == thread2;
diff --git a/libpthread/nptl/pthread_exit.c b/libpthread/nptl/pthread_exit.c
index a8c92fd..88d3859 100644
--- a/libpthread/nptl/pthread_exit.c
+++ b/libpthread/nptl/pthread_exit.c
@@ -22,6 +22,7 @@
 
 
 void
+attribute_protected
 __pthread_exit (void* value)
 {
   THREAD_SETMEM (THREAD_SELF, result, value);
diff --git a/libpthread/nptl/pthread_getschedparam.c b/libpthread/nptl/pthread_getschedparam.c
index bb5f0a9..53dc411 100644
--- a/libpthread/nptl/pthread_getschedparam.c
+++ b/libpthread/nptl/pthread_getschedparam.c
@@ -24,6 +24,7 @@
 
 
 int
+attribute_protected
 __pthread_getschedparam (
      pthread_t threadid,
      int *policy,
diff --git a/libpthread/nptl/pthread_getspecific.c b/libpthread/nptl/pthread_getspecific.c
index 62c48fe..639a4fd 100644
--- a/libpthread/nptl/pthread_getspecific.c
+++ b/libpthread/nptl/pthread_getspecific.c
@@ -22,6 +22,7 @@
 
 
 void *
+attribute_protected
 __pthread_getspecific (pthread_key_t key)
 {
   struct pthread_key_data *data;
diff --git a/libpthread/nptl/pthread_key_create.c b/libpthread/nptl/pthread_key_create.c
index 3744c08..d3c1d26 100644
--- a/libpthread/nptl/pthread_key_create.c
+++ b/libpthread/nptl/pthread_key_create.c
@@ -23,6 +23,7 @@
 
 
 int
+attribute_protected
 __pthread_key_create (
      pthread_key_t *key,
      void (*destr) (void *))
diff --git a/libpthread/nptl/pthread_mutex_destroy.c b/libpthread/nptl/pthread_mutex_destroy.c
index f487d61..756e8bb 100644
--- a/libpthread/nptl/pthread_mutex_destroy.c
+++ b/libpthread/nptl/pthread_mutex_destroy.c
@@ -22,6 +22,7 @@
 
 
 int
+attribute_protected
 __pthread_mutex_destroy (
      pthread_mutex_t *mutex)
 {
diff --git a/libpthread/nptl/pthread_mutex_init.c b/libpthread/nptl/pthread_mutex_init.c
index dd6e6d6..e942c1b 100644
--- a/libpthread/nptl/pthread_mutex_init.c
+++ b/libpthread/nptl/pthread_mutex_init.c
@@ -37,6 +37,7 @@ static int tpi_supported;
 
 
 int
+attribute_protected
 __pthread_mutex_init (
      pthread_mutex_t *mutex,
      const pthread_mutexattr_t *mutexattr)
diff --git a/libpthread/nptl/pthread_mutex_lock.c b/libpthread/nptl/pthread_mutex_lock.c
index 47e4d41..6abf323 100644
--- a/libpthread/nptl/pthread_mutex_lock.c
+++ b/libpthread/nptl/pthread_mutex_lock.c
@@ -42,6 +42,7 @@ static int __pthread_mutex_lock_full (pthread_mutex_t *mutex)
 
 
 int
+attribute_protected
 __pthread_mutex_lock (
      pthread_mutex_t *mutex)
 {
diff --git a/libpthread/nptl/pthread_mutex_unlock.c b/libpthread/nptl/pthread_mutex_unlock.c
index f164cde..3abada2 100644
--- a/libpthread/nptl/pthread_mutex_unlock.c
+++ b/libpthread/nptl/pthread_mutex_unlock.c
@@ -284,6 +284,7 @@ __pthread_mutex_unlock_full (pthread_mutex_t *mutex, int decr)
 
 
 int
+attribute_protected
 __pthread_mutex_unlock (
      pthread_mutex_t *mutex)
 {
diff --git a/libpthread/nptl/pthread_self.c b/libpthread/nptl/pthread_self.c
index f0e3b3f..1ad5283 100644
--- a/libpthread/nptl/pthread_self.c
+++ b/libpthread/nptl/pthread_self.c
@@ -22,6 +22,7 @@
 
 
 pthread_t
+attribute_protected
 __pthread_self (void)
 {
   return (pthread_t) THREAD_SELF;
diff --git a/libpthread/nptl/pthread_setcancelstate.c b/libpthread/nptl/pthread_setcancelstate.c
index e53b52d..ed69735 100644
--- a/libpthread/nptl/pthread_setcancelstate.c
+++ b/libpthread/nptl/pthread_setcancelstate.c
@@ -23,6 +23,7 @@
 
 
 int
+attribute_protected
 __pthread_setcancelstate (
      int state,
      int *oldstate)
diff --git a/libpthread/nptl/pthread_setcanceltype.c b/libpthread/nptl/pthread_setcanceltype.c
index 47c104b..8ac0df3 100644
--- a/libpthread/nptl/pthread_setcanceltype.c
+++ b/libpthread/nptl/pthread_setcanceltype.c
@@ -23,6 +23,7 @@
 
 
 int
+attribute_protected
 __pthread_setcanceltype (
      int type,
      int *oldtype)
diff --git a/libpthread/nptl/pthread_setschedparam.c b/libpthread/nptl/pthread_setschedparam.c
index 9b33b3e..c97de7d 100644
--- a/libpthread/nptl/pthread_setschedparam.c
+++ b/libpthread/nptl/pthread_setschedparam.c
@@ -25,6 +25,7 @@
 
 
 int
+attribute_protected
 __pthread_setschedparam (
      pthread_t threadid,
      int policy,
diff --git a/libpthread/nptl/pthread_setspecific.c b/libpthread/nptl/pthread_setspecific.c
index 8e24be7..13b24dc 100644
--- a/libpthread/nptl/pthread_setspecific.c
+++ b/libpthread/nptl/pthread_setspecific.c
@@ -23,6 +23,7 @@
 
 
 int
+attribute_protected
 __pthread_setspecific (
      pthread_key_t key,
      const void *value)
diff --git a/libpthread/nptl/sysdeps/pthread/pthread_cond_broadcast.c b/libpthread/nptl/sysdeps/pthread/pthread_cond_broadcast.c
index 5e74657..df91552 100644
--- a/libpthread/nptl/sysdeps/pthread/pthread_cond_broadcast.c
+++ b/libpthread/nptl/sysdeps/pthread/pthread_cond_broadcast.c
@@ -28,6 +28,7 @@
 
 
 int
+attribute_protected
 __pthread_cond_broadcast (
      pthread_cond_t *cond)
 {
diff --git a/libpthread/nptl/sysdeps/pthread/pthread_cond_signal.c b/libpthread/nptl/sysdeps/pthread/pthread_cond_signal.c
index d66f3ed..b207aa8 100644
--- a/libpthread/nptl/sysdeps/pthread/pthread_cond_signal.c
+++ b/libpthread/nptl/sysdeps/pthread/pthread_cond_signal.c
@@ -28,6 +28,7 @@
 
 
 int
+attribute_protected
 __pthread_cond_signal (
      pthread_cond_t *cond)
 {
diff --git a/libpthread/nptl/sysdeps/pthread/pthread_cond_timedwait.c b/libpthread/nptl/sysdeps/pthread/pthread_cond_timedwait.c
index 4aaf5df..7f36753 100644
--- a/libpthread/nptl/sysdeps/pthread/pthread_cond_timedwait.c
+++ b/libpthread/nptl/sysdeps/pthread/pthread_cond_timedwait.c
@@ -39,6 +39,7 @@ struct _condvar_cleanup_buffer
 };
 
 int
+attribute_protected
 __pthread_cond_timedwait (
      pthread_cond_t *cond,
      pthread_mutex_t *mutex,
diff --git a/libpthread/nptl/sysdeps/pthread/pthread_cond_wait.c b/libpthread/nptl/sysdeps/pthread/pthread_cond_wait.c
index 2fac02d..05157ba 100644
--- a/libpthread/nptl/sysdeps/pthread/pthread_cond_wait.c
+++ b/libpthread/nptl/sysdeps/pthread/pthread_cond_wait.c
@@ -89,6 +89,7 @@ __condvar_cleanup (void *arg)
 
 
 int
+attribute_protected
 __pthread_cond_wait (
      pthread_cond_t *cond,
      pthread_mutex_t *mutex)
diff --git a/libpthread/nptl/sysdeps/pthread/pthread_rwlock_rdlock.c b/libpthread/nptl/sysdeps/pthread/pthread_rwlock_rdlock.c
index dc00f2a..98840f9 100644
--- a/libpthread/nptl/sysdeps/pthread/pthread_rwlock_rdlock.c
+++ b/libpthread/nptl/sysdeps/pthread/pthread_rwlock_rdlock.c
@@ -26,6 +26,7 @@
 
 /* Acquire read lock for RWLOCK.  */
 int
+attribute_protected
 __pthread_rwlock_rdlock (
      pthread_rwlock_t *rwlock)
 {
diff --git a/libpthread/nptl/sysdeps/pthread/pthread_rwlock_unlock.c b/libpthread/nptl/sysdeps/pthread/pthread_rwlock_unlock.c
index a7ef71a..855fc19 100644
--- a/libpthread/nptl/sysdeps/pthread/pthread_rwlock_unlock.c
+++ b/libpthread/nptl/sysdeps/pthread/pthread_rwlock_unlock.c
@@ -25,6 +25,7 @@
 
 /* Unlock RWLOCK.  */
 int
+attribute_protected
 __pthread_rwlock_unlock (pthread_rwlock_t *rwlock)
 {
   lll_lock (rwlock->__data.__lock, rwlock->__data.__shared);
diff --git a/libpthread/nptl/sysdeps/pthread/pthread_rwlock_wrlock.c b/libpthread/nptl/sysdeps/pthread/pthread_rwlock_wrlock.c
index 81e6daa..9a441af 100644
--- a/libpthread/nptl/sysdeps/pthread/pthread_rwlock_wrlock.c
+++ b/libpthread/nptl/sysdeps/pthread/pthread_rwlock_wrlock.c
@@ -26,6 +26,7 @@
 
 /* Acquire write lock for RWLOCK.  */
 int
+attribute_protected
 __pthread_rwlock_wrlock (
      pthread_rwlock_t *rwlock)
 {
diff --git a/libpthread/nptl/sysdeps/unix/sysv/linux/alpha/pthread_once.c b/libpthread/nptl/sysdeps/unix/sysv/linux/alpha/pthread_once.c
index 0e7e979..8adf8b4 100644
--- a/libpthread/nptl/sysdeps/unix/sysv/linux/alpha/pthread_once.c
+++ b/libpthread/nptl/sysdeps/unix/sysv/linux/alpha/pthread_once.c
@@ -32,6 +32,7 @@ clear_once_control (void *arg)
 }
 
 int
+attribute_protected
 __pthread_once (pthread_once_t *once_control, void (*init_routine) (void))
 {
   for (;;)
diff --git a/libpthread/nptl/sysdeps/unix/sysv/linux/arm/pthread_once.c b/libpthread/nptl/sysdeps/unix/sysv/linux/arm/pthread_once.c
index d81ecd4..e977a7d 100644
--- a/libpthread/nptl/sysdeps/unix/sysv/linux/arm/pthread_once.c
+++ b/libpthread/nptl/sysdeps/unix/sysv/linux/arm/pthread_once.c
@@ -31,6 +31,7 @@ clear_once_control (void *arg)
 }
 
 int
+attribute_protected
 __pthread_once (pthread_once_t *once_control, void (*init_routine) (void))
 {
   for (;;)
diff --git a/libpthread/nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_cond_broadcast.S b/libpthread/nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_cond_broadcast.S
index 0413cc1..ca9ceca 100644
--- a/libpthread/nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_cond_broadcast.S
+++ b/libpthread/nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_cond_broadcast.S
@@ -30,6 +30,7 @@
 	/* int pthread_cond_broadcast (pthread_cond_t *cond) */
 	.globl	__pthread_cond_broadcast
 	.type	__pthread_cond_broadcast, @function
+	.protected	__pthread_cond_broadcast
 	.align	16
 __pthread_cond_broadcast:
 	cfi_startproc
diff --git a/libpthread/nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_cond_signal.S b/libpthread/nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_cond_signal.S
index 2f3c9bc..118bc07 100644
--- a/libpthread/nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_cond_signal.S
+++ b/libpthread/nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_cond_signal.S
@@ -31,6 +31,7 @@
 	/* int pthread_cond_signal (pthread_cond_t *cond) */
 	.globl	__pthread_cond_signal
 	.type	__pthread_cond_signal, @function
+	.protected	__pthread_cond_signal
 	.align	16
 __pthread_cond_signal:
 
diff --git a/libpthread/nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S b/libpthread/nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S
index c56dd77..8a0c3fb 100644
--- a/libpthread/nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S
+++ b/libpthread/nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S
@@ -31,6 +31,7 @@
 			       const struct timespec *abstime)  */
 	.globl	__pthread_cond_timedwait
 	.type	__pthread_cond_timedwait, @function
+	.protected	__pthread_cond_timedwait
 	.align	16
 __pthread_cond_timedwait:
 .LSTARTCODE:
diff --git a/libpthread/nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S b/libpthread/nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S
index 6261805..006fc51 100644
--- a/libpthread/nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S
+++ b/libpthread/nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S
@@ -31,6 +31,7 @@
 /* int pthread_cond_wait (pthread_cond_t *cond, pthread_mutex_t *mutex)  */
 	.globl	__pthread_cond_wait
 	.type	__pthread_cond_wait, @function
+	.protected	__pthread_cond_wait
 	.align	16
 __pthread_cond_wait:
 .LSTARTCODE:
diff --git a/libpthread/nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_rdlock.S b/libpthread/nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_rdlock.S
index 6205a60..79501bd 100644
--- a/libpthread/nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_rdlock.S
+++ b/libpthread/nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_rdlock.S
@@ -29,6 +29,7 @@
 
 	.globl	__pthread_rwlock_rdlock
 	.type	__pthread_rwlock_rdlock, at function
+	.protected	__pthread_rwlock_rdlock
 	.align	16
 __pthread_rwlock_rdlock:
 	cfi_startproc
diff --git a/libpthread/nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_unlock.S b/libpthread/nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_unlock.S
index 426ffdc..cfab60c 100644
--- a/libpthread/nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_unlock.S
+++ b/libpthread/nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_unlock.S
@@ -28,6 +28,7 @@
 
 	.globl	__pthread_rwlock_unlock
 	.type	__pthread_rwlock_unlock, at function
+	.protected	__pthread_rwlock_unlock
 	.align	16
 __pthread_rwlock_unlock:
 	cfi_startproc
diff --git a/libpthread/nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_wrlock.S b/libpthread/nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_wrlock.S
index 0414ba0..5c96d90 100644
--- a/libpthread/nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_wrlock.S
+++ b/libpthread/nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_wrlock.S
@@ -29,6 +29,7 @@
 
 	.globl	__pthread_rwlock_wrlock
 	.type	__pthread_rwlock_wrlock, at function
+	.protected	__pthread_rwlock_wrlock
 	.align	16
 __pthread_rwlock_wrlock:
 	cfi_startproc
diff --git a/libpthread/nptl/sysdeps/unix/sysv/linux/i386/pthread_once.S b/libpthread/nptl/sysdeps/unix/sysv/linux/i386/pthread_once.S
index 409df15..7a2cbf4 100644
--- a/libpthread/nptl/sysdeps/unix/sysv/linux/i386/pthread_once.S
+++ b/libpthread/nptl/sysdeps/unix/sysv/linux/i386/pthread_once.S
@@ -31,6 +31,7 @@
 
 	.globl	__pthread_once
 	.type	__pthread_once, at function
+	.protected	__pthread_once
 	.align	16
 	cfi_startproc
 __pthread_once:
diff --git a/libpthread/nptl/sysdeps/unix/sysv/linux/mips/pthread_once.c b/libpthread/nptl/sysdeps/unix/sysv/linux/mips/pthread_once.c
index ddfd32b..cc4658b 100644
--- a/libpthread/nptl/sysdeps/unix/sysv/linux/mips/pthread_once.c
+++ b/libpthread/nptl/sysdeps/unix/sysv/linux/mips/pthread_once.c
@@ -35,6 +35,7 @@ clear_once_control (void *arg)
 
 
 int
+attribute_protected
 __pthread_once (once_control, init_routine)
      pthread_once_t *once_control;
      void (*init_routine) (void);
diff --git a/libpthread/nptl/sysdeps/unix/sysv/linux/powerpc/pthread_once.c b/libpthread/nptl/sysdeps/unix/sysv/linux/powerpc/pthread_once.c
index 9690780..bc5f3f0 100644
--- a/libpthread/nptl/sysdeps/unix/sysv/linux/powerpc/pthread_once.c
+++ b/libpthread/nptl/sysdeps/unix/sysv/linux/powerpc/pthread_once.c
@@ -35,6 +35,7 @@ clear_once_control (void *arg)
 
 
 int
+attribute_protected
 __pthread_once (pthread_once_t *once_control, void (*init_routine) (void))
 {
   for (;;)
diff --git a/libpthread/nptl/sysdeps/unix/sysv/linux/sh/pthread_cond_broadcast.S b/libpthread/nptl/sysdeps/unix/sysv/linux/sh/pthread_cond_broadcast.S
index 1242fc2..2331831 100644
--- a/libpthread/nptl/sysdeps/unix/sysv/linux/sh/pthread_cond_broadcast.S
+++ b/libpthread/nptl/sysdeps/unix/sysv/linux/sh/pthread_cond_broadcast.S
@@ -30,6 +30,7 @@
 	/* int pthread_cond_broadcast (pthread_cond_t *cond) */
 	.globl	__pthread_cond_broadcast
 	.type	__pthread_cond_broadcast, @function
+	.protected	__pthread_cond_broadcast
 	.align	5
 __pthread_cond_broadcast:
 	mov.l   r10, @-r15
diff --git a/libpthread/nptl/sysdeps/unix/sysv/linux/sh/pthread_cond_signal.S b/libpthread/nptl/sysdeps/unix/sysv/linux/sh/pthread_cond_signal.S
index 1c3bacb..ca87336 100644
--- a/libpthread/nptl/sysdeps/unix/sysv/linux/sh/pthread_cond_signal.S
+++ b/libpthread/nptl/sysdeps/unix/sysv/linux/sh/pthread_cond_signal.S
@@ -29,6 +29,7 @@
 	/* int pthread_cond_signal (pthread_cond_t *cond) */
 	.globl	__pthread_cond_signal
 	.type	__pthread_cond_signal, @function
+	.protected	__pthread_cond_signal
 	.align	5
 __pthread_cond_signal:
 	mov.l	r8, @-r15
diff --git a/libpthread/nptl/sysdeps/unix/sysv/linux/sh/pthread_cond_timedwait.S b/libpthread/nptl/sysdeps/unix/sysv/linux/sh/pthread_cond_timedwait.S
index 3e11756..cacb037 100644
--- a/libpthread/nptl/sysdeps/unix/sysv/linux/sh/pthread_cond_timedwait.S
+++ b/libpthread/nptl/sysdeps/unix/sysv/linux/sh/pthread_cond_timedwait.S
@@ -30,6 +30,7 @@
 			       const struct timespec *abstime)  */
 	.globl	__pthread_cond_timedwait
 	.type	__pthread_cond_timedwait, @function
+	.protected	__pthread_cond_timedwait
 	.align	5
 __pthread_cond_timedwait:
 .LSTARTCODE:
diff --git a/libpthread/nptl/sysdeps/unix/sysv/linux/sh/pthread_cond_wait.S b/libpthread/nptl/sysdeps/unix/sysv/linux/sh/pthread_cond_wait.S
index 5a897f6..b0a4e98 100644
--- a/libpthread/nptl/sysdeps/unix/sysv/linux/sh/pthread_cond_wait.S
+++ b/libpthread/nptl/sysdeps/unix/sysv/linux/sh/pthread_cond_wait.S
@@ -28,6 +28,7 @@
 /* int pthread_cond_wait (pthread_cond_t *cond, pthread_mutex_t *mutex)  */
 	.globl	__pthread_cond_wait
 	.type	__pthread_cond_wait, @function
+	.protected	__pthread_cond_wait
 	.align	5
 __pthread_cond_wait:
 .LSTARTCODE:
diff --git a/libpthread/nptl/sysdeps/unix/sysv/linux/sh/pthread_once.S b/libpthread/nptl/sysdeps/unix/sysv/linux/sh/pthread_once.S
index a1477b3..4623445 100644
--- a/libpthread/nptl/sysdeps/unix/sysv/linux/sh/pthread_once.S
+++ b/libpthread/nptl/sysdeps/unix/sysv/linux/sh/pthread_once.S
@@ -29,6 +29,7 @@
 	.text
 	.globl	__pthread_once
 	.type	__pthread_once, at function
+	.protected	__pthread_once
 	.align	5
 	cfi_startproc
 __pthread_once:
diff --git a/libpthread/nptl/sysdeps/unix/sysv/linux/sh/pthread_rwlock_rdlock.S b/libpthread/nptl/sysdeps/unix/sysv/linux/sh/pthread_rwlock_rdlock.S
index 52fe5de..21e05e1 100644
--- a/libpthread/nptl/sysdeps/unix/sysv/linux/sh/pthread_rwlock_rdlock.S
+++ b/libpthread/nptl/sysdeps/unix/sysv/linux/sh/pthread_rwlock_rdlock.S
@@ -29,6 +29,7 @@
 
 	.globl	__pthread_rwlock_rdlock
 	.type	__pthread_rwlock_rdlock, at function
+	.protected	__pthread_rwlock_rdlock
 	.align	5
 __pthread_rwlock_rdlock:
 	mov.l	r12, @-r15
diff --git a/libpthread/nptl/sysdeps/unix/sysv/linux/sh/pthread_rwlock_unlock.S b/libpthread/nptl/sysdeps/unix/sysv/linux/sh/pthread_rwlock_unlock.S
index bc6c6c2..1f6c1d8 100644
--- a/libpthread/nptl/sysdeps/unix/sysv/linux/sh/pthread_rwlock_unlock.S
+++ b/libpthread/nptl/sysdeps/unix/sysv/linux/sh/pthread_rwlock_unlock.S
@@ -28,6 +28,7 @@
 
 	.globl	__pthread_rwlock_unlock
 	.type	__pthread_rwlock_unlock, at function
+	.protected	__pthread_rwlock_unlock
 	.align	5
 __pthread_rwlock_unlock:
 	mov.l	r12, @-r15
diff --git a/libpthread/nptl/sysdeps/unix/sysv/linux/sh/pthread_rwlock_wrlock.S b/libpthread/nptl/sysdeps/unix/sysv/linux/sh/pthread_rwlock_wrlock.S
index 3d37fb4..e7bfe0d 100644
--- a/libpthread/nptl/sysdeps/unix/sysv/linux/sh/pthread_rwlock_wrlock.S
+++ b/libpthread/nptl/sysdeps/unix/sysv/linux/sh/pthread_rwlock_wrlock.S
@@ -29,6 +29,7 @@
 
 	.globl	__pthread_rwlock_wrlock
 	.type	__pthread_rwlock_wrlock, at function
+	.protected	__pthread_rwlock_wrlock
 	.align	5
 __pthread_rwlock_wrlock:
 	mov.l	r12, @-r15
diff --git a/libpthread/nptl/sysdeps/unix/sysv/linux/sparc/pthread_once.c b/libpthread/nptl/sysdeps/unix/sysv/linux/sparc/pthread_once.c
index 22e2dd3..24b74ac 100644
--- a/libpthread/nptl/sysdeps/unix/sysv/linux/sparc/pthread_once.c
+++ b/libpthread/nptl/sysdeps/unix/sysv/linux/sparc/pthread_once.c
@@ -35,6 +35,7 @@ clear_once_control (void *arg)
 
 
 int
+attribute_protected
 __pthread_once (once_control, init_routine)
      pthread_once_t *once_control;
      void (*init_routine) (void);
diff --git a/libpthread/nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_broadcast.S b/libpthread/nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_broadcast.S
index 0f8037b..1a116cf 100644
--- a/libpthread/nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_broadcast.S
+++ b/libpthread/nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_broadcast.S
@@ -31,6 +31,7 @@
 	/* int pthread_cond_broadcast (pthread_cond_t *cond) */
 	.globl	__pthread_cond_broadcast
 	.type	__pthread_cond_broadcast, @function
+	.protected	__pthread_cond_broadcast
 	.align	16
 __pthread_cond_broadcast:
 
diff --git a/libpthread/nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_signal.S b/libpthread/nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_signal.S
index 568c984..9852e79 100644
--- a/libpthread/nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_signal.S
+++ b/libpthread/nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_signal.S
@@ -30,6 +30,7 @@
 	/* int pthread_cond_signal (pthread_cond_t *cond) */
 	.globl	__pthread_cond_signal
 	.type	__pthread_cond_signal, @function
+	.protected	__pthread_cond_signal
 	.align	16
 __pthread_cond_signal:
 
diff --git a/libpthread/nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S b/libpthread/nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S
index bc5c0b3..3a965ad 100644
--- a/libpthread/nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S
+++ b/libpthread/nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S
@@ -36,6 +36,7 @@
 			       const struct timespec *abstime)  */
 	.globl	__pthread_cond_timedwait
 	.type	__pthread_cond_timedwait, @function
+	.protected	__pthread_cond_timedwait
 	.align	16
 __pthread_cond_timedwait:
 .LSTARTCODE:
diff --git a/libpthread/nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S b/libpthread/nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S
index a44e7a7..cc67ed9 100644
--- a/libpthread/nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S
+++ b/libpthread/nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S
@@ -31,6 +31,7 @@
 /* int pthread_cond_wait (pthread_cond_t *cond, pthread_mutex_t *mutex)  */
 	.globl	__pthread_cond_wait
 	.type	__pthread_cond_wait, @function
+	.protected	__pthread_cond_wait
 	.align	16
 __pthread_cond_wait:
 .LSTARTCODE:
diff --git a/libpthread/nptl/sysdeps/unix/sysv/linux/x86_64/pthread_once.S b/libpthread/nptl/sysdeps/unix/sysv/linux/x86_64/pthread_once.S
index a808b9d..9013d8f 100644
--- a/libpthread/nptl/sysdeps/unix/sysv/linux/x86_64/pthread_once.S
+++ b/libpthread/nptl/sysdeps/unix/sysv/linux/x86_64/pthread_once.S
@@ -30,6 +30,7 @@
 
 	.globl	__pthread_once
 	.type	__pthread_once, at function
+	.protected	__pthread_once
 	.align	16
 __pthread_once:
 .LSTARTCODE:
diff --git a/libpthread/nptl/sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_rdlock.S b/libpthread/nptl/sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_rdlock.S
index f36e7a7..82badb1 100644
--- a/libpthread/nptl/sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_rdlock.S
+++ b/libpthread/nptl/sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_rdlock.S
@@ -29,6 +29,7 @@
 
 	.globl	__pthread_rwlock_rdlock
 	.type	__pthread_rwlock_rdlock, at function
+	.protected	__pthread_rwlock_rdlock
 	.align	16
 __pthread_rwlock_rdlock:
 	cfi_startproc
diff --git a/libpthread/nptl/sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_unlock.S b/libpthread/nptl/sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_unlock.S
index cfcc7a1..e34c42e 100644
--- a/libpthread/nptl/sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_unlock.S
+++ b/libpthread/nptl/sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_unlock.S
@@ -27,6 +27,7 @@
 
 	.globl	__pthread_rwlock_unlock
 	.type	__pthread_rwlock_unlock, at function
+	.protected	__pthread_rwlock_unlock
 	.align	16
 __pthread_rwlock_unlock:
 	cfi_startproc
diff --git a/libpthread/nptl/sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_wrlock.S b/libpthread/nptl/sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_wrlock.S
index ccfc11b..c626d9e 100644
--- a/libpthread/nptl/sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_wrlock.S
+++ b/libpthread/nptl/sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_wrlock.S
@@ -29,6 +29,7 @@
 
 	.globl	__pthread_rwlock_wrlock
 	.type	__pthread_rwlock_wrlock, at function
+	.protected	__pthread_rwlock_wrlock
 	.align	16
 __pthread_rwlock_wrlock:
 	cfi_startproc
diff --git a/libpthread/nptl/unwind.c b/libpthread/nptl/unwind.c
index 9a35695..c7e01e7 100644
--- a/libpthread/nptl/unwind.c
+++ b/libpthread/nptl/unwind.c
@@ -115,6 +115,7 @@ unwind_cleanup (_Unwind_Reason_Code reason, struct _Unwind_Exception *exc)
 
 
 void
+attribute_protected
 __cleanup_fct_attribute __attribute ((noreturn))
 __pthread_unwind (__pthread_unwind_buf_t *buf)
 {
-- 
1.6.3.3



More information about the uClibc-cvs mailing list