[git commit master 1/1] add missing prototypes

Peter S. Mazinger ps.m at gmx.net
Thu Mar 3 17:22:53 UTC 2011


commit: http://git.uclibc.org/uClibc/commit/?id=f00e553e4b084007781df5e4b5accc2e152da231
branch: http://git.uclibc.org/uClibc/commit/?id=refs/heads/master

Add some missing prototypes

Signed-off-by: Peter S. Mazinger <ps.m at gmx.net>
---
 include/signal.h                           |    6 ++++++
 libc/misc/internals/__uClibc_main.c        |    7 +++++--
 libc/sysdeps/linux/common/longjmp.c        |    4 ++++
 libpthread/nptl/init.c                     |    1 +
 libpthread/nptl/pthreadP.h                 |   16 ++++++++++++++--
 libpthread/nptl/sysdeps/generic/libc-tls.c |    1 +
 libpthread/nptl/unwind.c                   |    3 +++
 7 files changed, 34 insertions(+), 4 deletions(-)

diff --git a/include/signal.h b/include/signal.h
index 0a09c7a..80e4ede 100644
--- a/include/signal.h
+++ b/include/signal.h
@@ -310,6 +310,9 @@ extern int sigwait (__const sigset_t *__restrict __set, int *__restrict __sig)
    __THROW.  */
 extern int sigwaitinfo (__const sigset_t *__restrict __set,
 			siginfo_t *__restrict __info) __nonnull ((1));
+#ifdef _LIBC
+extern __typeof(sigwaitinfo) __sigwaitinfo attribute_hidden;
+#endif
 libc_hidden_proto(sigwaitinfo)
 
 /* Select any of pending signals from SET and place information in INFO.
@@ -321,6 +324,9 @@ extern int sigtimedwait (__const sigset_t *__restrict __set,
 			 siginfo_t *__restrict __info,
 			 __const struct timespec *__restrict __timeout)
      __nonnull ((1));
+#ifdef _LIBC
+extern __typeof(sigtimedwait) __sigtimedwait attribute_hidden;
+#endif
 libc_hidden_proto(sigtimedwait)
 
 /* Send signal SIG to the process PID.  Associate data in VAL with the
diff --git a/libc/misc/internals/__uClibc_main.c b/libc/misc/internals/__uClibc_main.c
index 58f6643..da29ef6 100644
--- a/libc/misc/internals/__uClibc_main.c
+++ b/libc/misc/internals/__uClibc_main.c
@@ -313,6 +313,11 @@ void __uClibc_fini(void)
 }
 libc_hidden_def(__uClibc_fini)
 
+#ifndef SHARED
+extern void __nptl_deallocate_tsd (void) __attribute ((weak));
+extern unsigned int __nptl_nthreads __attribute ((weak));
+#endif
+
 /* __uClibc_main is the new main stub for uClibc. This function is
  * called from crt1 (version 0.9.28 or newer), after ALL shared libraries
  * are initialized, just before we call the application's main function.
@@ -481,7 +486,6 @@ void __uClibc_main(int (*main)(int, char **, char **), int argc,
 # ifdef SHARED
 		__libc_pthread_functions.ptr__nptl_deallocate_tsd ();
 # else
-		extern void __nptl_deallocate_tsd (void) __attribute ((weak));
 		__nptl_deallocate_tsd ();
 # endif
 
@@ -491,7 +495,6 @@ void __uClibc_main(int (*main)(int, char **, char **), int argc,
 # ifdef SHARED
 		unsigned int *const ptr = __libc_pthread_functions.ptr_nthreads;
 # else
-		extern unsigned int __nptl_nthreads __attribute ((weak));
 		unsigned int *const ptr = &__nptl_nthreads;
 # endif
 
diff --git a/libc/sysdeps/linux/common/longjmp.c b/libc/sysdeps/linux/common/longjmp.c
index 4d14424..b07eced 100644
--- a/libc/sysdeps/linux/common/longjmp.c
+++ b/libc/sysdeps/linux/common/longjmp.c
@@ -24,6 +24,10 @@
 extern void __longjmp (__jmp_buf __env, int __val) attribute_noreturn;
 libc_hidden_proto(__longjmp)
 
+#if 0
+extern void _longjmp_unwind (jmp_buf env, int val);
+#endif
+
 extern __typeof(longjmp) __libc_longjmp attribute_noreturn;
 /* Set the signal mask to the one specified in ENV, and jump
    to the position specified in ENV, causing the setjmp
diff --git a/libpthread/nptl/init.c b/libpthread/nptl/init.c
index 911293a..c8ca096 100644
--- a/libpthread/nptl/init.c
+++ b/libpthread/nptl/init.c
@@ -257,6 +257,7 @@ extern void **__libc_dl_error_tsd (void) __attribute__ ((const));
 /* This can be set by the debugger before initialization is complete.  */
 static bool __nptl_initial_report_events __attribute_used__;
 
+void __pthread_initialize_minimal_internal (void) attribute_hidden;
 void
 __pthread_initialize_minimal_internal (void)
 {
diff --git a/libpthread/nptl/pthreadP.h b/libpthread/nptl/pthreadP.h
index fbac7d0..fb354ea 100644
--- a/libpthread/nptl/pthreadP.h
+++ b/libpthread/nptl/pthreadP.h
@@ -179,7 +179,13 @@ extern struct pthread_key_struct __pthread_keys[PTHREAD_KEYS_MAX];
 hidden_proto (__pthread_keys)
 
 /* Number of threads running.  */
-extern unsigned int __nptl_nthreads attribute_hidden;
+extern unsigned int __nptl_nthreads
+#ifdef SHARED
+	attribute_hidden
+#else
+	__attribute ((weak))
+#endif
+	;
 
 #ifndef __ASSUME_SET_ROBUST_LIST
 /* Negative if we do not have the system call and we can use it.  */
@@ -563,7 +569,13 @@ extern void _pthread_cleanup_push_defer (struct _pthread_cleanup_buffer *buffer,
 extern void _pthread_cleanup_pop_restore (struct _pthread_cleanup_buffer *buffer,
                                           int execute);
 
-extern void __nptl_deallocate_tsd (void) attribute_hidden;
+extern void __nptl_deallocate_tsd (void)
+#ifdef SHARED
+	attribute_hidden
+#else
+	__attribute ((weak))
+#endif
+	;
 
 extern int __nptl_setxid (struct xid_command *cmdp) attribute_hidden;
 
diff --git a/libpthread/nptl/sysdeps/generic/libc-tls.c b/libpthread/nptl/sysdeps/generic/libc-tls.c
index c45e761..e14fc26 100644
--- a/libpthread/nptl/sysdeps/generic/libc-tls.c
+++ b/libpthread/nptl/sysdeps/generic/libc-tls.c
@@ -242,6 +242,7 @@ _dl_tls_setup (void)
   return 0;
 }
 
+extern void __pthread_initialize_minimal(void) __attribute__((weak));
 
 /* This is the minimal initialization function used when libpthread is
    not used.  */
diff --git a/libpthread/nptl/unwind.c b/libpthread/nptl/unwind.c
index 0322a60..8f60ae4 100644
--- a/libpthread/nptl/unwind.c
+++ b/libpthread/nptl/unwind.c
@@ -117,6 +117,9 @@ unwind_cleanup (_Unwind_Reason_Code reason, struct _Unwind_Exception *exc)
 void
 attribute_protected
 __cleanup_fct_attribute __attribute ((noreturn))
+#if !defined SHARED && !defined IS_IN_LIBPTHREAD
+weak_function
+#endif
 __pthread_unwind (__pthread_unwind_buf_t *buf)
 {
   struct pthread_unwind_buf *ibuf = (struct pthread_unwind_buf *) buf;
-- 
1.7.3.4



More information about the uClibc-cvs mailing list