summaryrefslogtreecommitdiffstats
path: root/libpthread/nptl/sysdeps/unix/sysv
diff options
context:
space:
mode:
authorKhem Raj <kraj@mvista.com>2008-07-10 03:27:42 +0000
committerKhem Raj <kraj@mvista.com>2008-07-10 03:27:42 +0000
commit0d0bca1c5179fc9f03ab436e378b2bfee1b11497 (patch)
tree952e384f5125d630efb17974be3f30fa36b61fde /libpthread/nptl/sysdeps/unix/sysv
parentaae1fb67fdb983e874d9ce0a88a6baf3caeb2f1e (diff)
downloaduClibc-alpine-0d0bca1c5179fc9f03ab436e378b2bfee1b11497.tar.bz2
uClibc-alpine-0d0bca1c5179fc9f03ab436e378b2bfee1b11497.tar.xz
Exclude some files for ARM NPTL, Do not use _libc_fatal
Diffstat (limited to 'libpthread/nptl/sysdeps/unix/sysv')
-rw-r--r--libpthread/nptl/sysdeps/unix/sysv/linux/Makefile.in6
-rw-r--r--libpthread/nptl/sysdeps/unix/sysv/linux/arm/unwind-resume.c9
2 files changed, 12 insertions, 3 deletions
diff --git a/libpthread/nptl/sysdeps/unix/sysv/linux/Makefile.in b/libpthread/nptl/sysdeps/unix/sysv/linux/Makefile.in
index 06ef1a77f..472e63614 100644
--- a/libpthread/nptl/sysdeps/unix/sysv/linux/Makefile.in
+++ b/libpthread/nptl/sysdeps/unix/sysv/linux/Makefile.in
@@ -20,7 +20,11 @@ libc_CSRC = libc_pthread_init.c libc_multiple_threads.c \
raise.c sleep.c jmp-unwind.c
# These provide both a cancellable and a not cancellable implementation
-libc_SSRC = close.S open.S waitpid.S write.S read.S
+libc_SSRC = close.S open.S write.S read.S
+
+ifneq ($(TARGET_ARCH),arm)
+libc_SSRC += waitpid.S
+endif
librt_CSRC := mq_notify.c timer_create.c timer_delete.c \
timer_getoverr.c timer_gettime.c timer_routines.c \
diff --git a/libpthread/nptl/sysdeps/unix/sysv/linux/arm/unwind-resume.c b/libpthread/nptl/sysdeps/unix/sysv/linux/arm/unwind-resume.c
index e01b52801..344f80535 100644
--- a/libpthread/nptl/sysdeps/unix/sysv/linux/arm/unwind-resume.c
+++ b/libpthread/nptl/sysdeps/unix/sysv/linux/arm/unwind-resume.c
@@ -21,6 +21,9 @@
#include <stdio.h>
#include <unwind.h>
+#define __libc_dlopen(x) dlopen(x, (RTLD_LOCAL | RTLD_LAZY))
+#define __libc_dlsym dlsym
+
static void (*libgcc_s_resume) (struct _Unwind_Exception *exc);
static _Unwind_Reason_Code (*libgcc_s_personality)
(_Unwind_State, struct _Unwind_Exception *, struct _Unwind_Context *);
@@ -37,8 +40,10 @@ init (void)
if (handle == NULL
|| (resume = __libc_dlsym (handle, "_Unwind_Resume")) == NULL
- || (personality = __libc_dlsym (handle, "__gcc_personality_v0")) == NULL)
- __libc_fatal ("libgcc_s.so.1 must be installed for pthread_cancel to work\n");
+ || (personality = __libc_dlsym (handle, "__gcc_personality_v0")) == NULL) {
+ fprintf(stderr, "libgcc_s.so.1 must be installed for pthread_cancel to work\n");
+ abort ();
+ }
libgcc_s_resume = resume;
libgcc_s_personality = personality;