diff options
author | "Steven J. Hill" <sjhill@realitydiluted.com> | 2006-08-21 04:26:01 +0000 |
---|---|---|
committer | "Steven J. Hill" <sjhill@realitydiluted.com> | 2006-08-21 04:26:01 +0000 |
commit | 4bdddc9cbfda2acc3da87f7565baca9307ab92f7 (patch) | |
tree | ddbbc7e72d72bf78d80f000163011d0c36a07aea /libpthread/nptl/sysdeps/pthread | |
parent | c1a6053c890d37c25fce66ffc65a4ede77093ee0 (diff) | |
download | uClibc-alpine-4bdddc9cbfda2acc3da87f7565baca9307ab92f7.tar.bz2 uClibc-alpine-4bdddc9cbfda2acc3da87f7565baca9307ab92f7.tar.xz |
Finally check in all the changes I made for NPTL library proper.
Diffstat (limited to 'libpthread/nptl/sysdeps/pthread')
-rw-r--r-- | libpthread/nptl/sysdeps/pthread/Makefile.in | 2 | ||||
-rw-r--r-- | libpthread/nptl/sysdeps/pthread/bits/stdio-lock.h | 1 | ||||
-rw-r--r-- | libpthread/nptl/sysdeps/pthread/pt-longjmp.c | 2 | ||||
-rw-r--r-- | libpthread/nptl/sysdeps/pthread/pthread.h | 3 | ||||
-rw-r--r-- | libpthread/nptl/sysdeps/pthread/sigaction.c | 8 | ||||
-rw-r--r-- | libpthread/nptl/sysdeps/pthread/sigprocmask.c | 1 | ||||
-rw-r--r-- | libpthread/nptl/sysdeps/pthread/unwind-resume.c | 10 |
7 files changed, 16 insertions, 11 deletions
diff --git a/libpthread/nptl/sysdeps/pthread/Makefile.in b/libpthread/nptl/sysdeps/pthread/Makefile.in index a3043d5e2..a0ed8c00c 100644 --- a/libpthread/nptl/sysdeps/pthread/Makefile.in +++ b/libpthread/nptl/sysdeps/pthread/Makefile.in @@ -1,6 +1,6 @@ # Makefile for uClibc NPTL # -# Copyright (C) 2005 Steven J. Hill <sjhill@uclibc.org> +# Copyright (C) 2005-2006 Steven J. Hill <sjhill@uclibc.org> # # Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball. # diff --git a/libpthread/nptl/sysdeps/pthread/bits/stdio-lock.h b/libpthread/nptl/sysdeps/pthread/bits/stdio-lock.h index cd64bc37e..0caf40d7b 100644 --- a/libpthread/nptl/sysdeps/pthread/bits/stdio-lock.h +++ b/libpthread/nptl/sysdeps/pthread/bits/stdio-lock.h @@ -20,7 +20,6 @@ #ifndef _BITS_STDIO_LOCK_H #define _BITS_STDIO_LOCK_H 1 -#include <bits/libc-lock.h> #include <lowlevellock.h> diff --git a/libpthread/nptl/sysdeps/pthread/pt-longjmp.c b/libpthread/nptl/sysdeps/pthread/pt-longjmp.c index f161380ea..b4106fdba 100644 --- a/libpthread/nptl/sysdeps/pthread/pt-longjmp.c +++ b/libpthread/nptl/sysdeps/pthread/pt-longjmp.c @@ -21,6 +21,8 @@ #include <stdlib.h> #include "pthreadP.h" +extern void __libc_longjmp (sigjmp_buf env, int val) + __attribute__ ((noreturn)); void longjmp (jmp_buf env, int val) { diff --git a/libpthread/nptl/sysdeps/pthread/pthread.h b/libpthread/nptl/sysdeps/pthread/pthread.h index e2601c609..9090b30d9 100644 --- a/libpthread/nptl/sysdeps/pthread/pthread.h +++ b/libpthread/nptl/sysdeps/pthread/pthread.h @@ -28,6 +28,9 @@ #include <bits/pthreadtypes.h> #include <setjmp.h> #include <bits/wordsize.h> +#if defined _LIBC && ( defined IS_IN_libc || defined NOT_IN_libc ) +#include <bits/uClibc_pthread.h> +#endif /* Detach state. */ diff --git a/libpthread/nptl/sysdeps/pthread/sigaction.c b/libpthread/nptl/sysdeps/pthread/sigaction.c index 7524b3e34..17443654d 100644 --- a/libpthread/nptl/sysdeps/pthread/sigaction.c +++ b/libpthread/nptl/sysdeps/pthread/sigaction.c @@ -31,10 +31,7 @@ # include <sigaction.c> int -__sigaction (sig, act, oact) - int sig; - const struct sigaction *act; - struct sigaction *oact; +__sigaction (int sig, const struct sigaction *act, struct sigaction *oact) { if (__builtin_expect (sig == SIGCANCEL || sig == SIGSETXID, 0)) { @@ -44,7 +41,8 @@ __sigaction (sig, act, oact) return __libc_sigaction (sig, act, oact); } -hidden_weak_alias(__sigaction, sigaction) +libc_hidden_weak (__sigaction) +weak_alias (__sigaction, sigaction) #else diff --git a/libpthread/nptl/sysdeps/pthread/sigprocmask.c b/libpthread/nptl/sysdeps/pthread/sigprocmask.c index 7a3891d32..35aa843ba 100644 --- a/libpthread/nptl/sysdeps/pthread/sigprocmask.c +++ b/libpthread/nptl/sysdeps/pthread/sigprocmask.c @@ -17,5 +17,6 @@ 02111-1307 USA. */ #include <pthreadP.h> +#undef _LARGEFILE64_SOURCE #include <../../../../libc/sysdeps/linux/common/sigprocmask.c> diff --git a/libpthread/nptl/sysdeps/pthread/unwind-resume.c b/libpthread/nptl/sysdeps/pthread/unwind-resume.c index 021024d49..594296723 100644 --- a/libpthread/nptl/sysdeps/pthread/unwind-resume.c +++ b/libpthread/nptl/sysdeps/pthread/unwind-resume.c @@ -19,6 +19,7 @@ #include <dlfcn.h> #include <stdio.h> +#include <stdlib.h> #include <unwind.h> static void (*libgcc_s_resume) (struct _Unwind_Exception *exc); @@ -29,14 +30,15 @@ static _Unwind_Reason_Code (*libgcc_s_personality) static void init (void) { - void *resume, *personality; + void *resume = NULL; + void *personality = NULL; void *handle; - handle = __libc_dlopen ("libgcc_s.so.1"); + handle = dlopen ("libgcc_s.so.1", (RTLD_LOCAL | RTLD_LAZY)); if (handle == NULL - || (resume = __libc_dlsym (handle, "_Unwind_Resume")) == NULL - || (personality = __libc_dlsym (handle, "__gcc_personality_v0")) == NULL) + || (resume = dlsym (handle, "_Unwind_Resume")) == NULL + || (personality = dlsym (handle, "__gcc_personality_v0")) == NULL) { printf("libgcc_s.so.1 must be installed for pthread_cancel to work\n"); abort(); |