summaryrefslogtreecommitdiffstats
path: root/libpthread/nptl/sysdeps/pthread
diff options
context:
space:
mode:
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
commit4bdddc9cbfda2acc3da87f7565baca9307ab92f7 (patch)
treeddbbc7e72d72bf78d80f000163011d0c36a07aea /libpthread/nptl/sysdeps/pthread
parentc1a6053c890d37c25fce66ffc65a4ede77093ee0 (diff)
downloaduClibc-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.in2
-rw-r--r--libpthread/nptl/sysdeps/pthread/bits/stdio-lock.h1
-rw-r--r--libpthread/nptl/sysdeps/pthread/pt-longjmp.c2
-rw-r--r--libpthread/nptl/sysdeps/pthread/pthread.h3
-rw-r--r--libpthread/nptl/sysdeps/pthread/sigaction.c8
-rw-r--r--libpthread/nptl/sysdeps/pthread/sigprocmask.c1
-rw-r--r--libpthread/nptl/sysdeps/pthread/unwind-resume.c10
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();