summaryrefslogtreecommitdiffstats
path: root/libc/sysdeps/linux/common
diff options
context:
space:
mode:
authorKhem Raj <kraj@mvista.com>2008-12-23 06:50:20 +0000
committerKhem Raj <kraj@mvista.com>2008-12-23 06:50:20 +0000
commit6374ca896086574af61eb37ef371e3371b10bb5c (patch)
tree4c321cab6e21f25534ea9c1e715c5b840ee9b810 /libc/sysdeps/linux/common
parentc229e6446c5fc270b88894269464213dc04f3200 (diff)
downloaduClibc-alpine-6374ca896086574af61eb37ef371e3371b10bb5c.tar.bz2
uClibc-alpine-6374ca896086574af61eb37ef371e3371b10bb5c.tar.xz
Get i386 non nptl builds going.
Diffstat (limited to 'libc/sysdeps/linux/common')
-rw-r--r--libc/sysdeps/linux/common/__rt_sigwaitinfo.c2
-rw-r--r--libc/sysdeps/linux/common/__syscall_rt_sigaction.c4
-rw-r--r--libc/sysdeps/linux/common/_exit.c10
-rw-r--r--libc/sysdeps/linux/common/bits/kernel_sigaction.h67
4 files changed, 17 insertions, 66 deletions
diff --git a/libc/sysdeps/linux/common/__rt_sigwaitinfo.c b/libc/sysdeps/linux/common/__rt_sigwaitinfo.c
index 5a35a5d49..1adc0fd73 100644
--- a/libc/sysdeps/linux/common/__rt_sigwaitinfo.c
+++ b/libc/sysdeps/linux/common/__rt_sigwaitinfo.c
@@ -77,7 +77,7 @@ int __sigwaitinfo(const sigset_t *set, siginfo_t *info)
# else
# define __need_NULL
# include <stddef.h>
-# define __NR___rt_sigwaitinfo __NR_rt_sigwaitinfo
+# define __NR___rt_sigwaitinfo __NR_rt_sigtimedwait
static _syscall4(int, __rt_sigwaitinfo, const sigset_t *, set,
siginfo_t *, info, const struct timespec *, timeout,
size_t, setsize);
diff --git a/libc/sysdeps/linux/common/__syscall_rt_sigaction.c b/libc/sysdeps/linux/common/__syscall_rt_sigaction.c
index 0f5329cfb..6fb416039 100644
--- a/libc/sysdeps/linux/common/__syscall_rt_sigaction.c
+++ b/libc/sysdeps/linux/common/__syscall_rt_sigaction.c
@@ -13,8 +13,8 @@
#include <signal.h>
#include <bits/kernel_sigaction.h>
-#define __NR___syscall_rt_sigaction __NR_rt_sigaction
-_syscall4(int, __syscall_rt_sigaction, int, signum,
+#define __NR___rt_sigaction __NR_rt_sigaction
+_syscall4(int, __rt_sigaction, int, signum,
const struct kernel_sigaction *, act, struct kernel_sigaction *, oldact,
size_t, size)
#endif
diff --git a/libc/sysdeps/linux/common/_exit.c b/libc/sysdeps/linux/common/_exit.c
index a0b891d25..518a6d2e8 100644
--- a/libc/sysdeps/linux/common/_exit.c
+++ b/libc/sysdeps/linux/common/_exit.c
@@ -12,9 +12,6 @@
#include <unistd.h>
#include <sys/types.h>
#include <sys/syscall.h>
-#ifdef __UCLIBC_HAS_THREADS__
-#include <sysdep.h>
-#endif
/* libc_hidden_proto(_exit) */
@@ -28,13 +25,6 @@ void attribute_noreturn _exit(int status)
{
/* The loop is added only to keep gcc happy. */
while(1)
- {
-#ifdef __UCLIBC_HAS_THREADS_NATIVE__
-# ifdef __NR_exit_group
- INLINE_SYSCALL(exit_group, 1, status);
-# endif
-#endif
INLINE_SYSCALL(exit, 1, status);
- }
}
libc_hidden_def(_exit)
diff --git a/libc/sysdeps/linux/common/bits/kernel_sigaction.h b/libc/sysdeps/linux/common/bits/kernel_sigaction.h
index ec414e1e3..f74e0a28a 100644
--- a/libc/sysdeps/linux/common/bits/kernel_sigaction.h
+++ b/libc/sysdeps/linux/common/bits/kernel_sigaction.h
@@ -4,72 +4,33 @@
/* This file provides whatever this particular arch's kernel thinks
* the sigaction struct should look like... */
-#undef NO_OLD_SIGACTION
-#if defined(__mips__)
-/* We have libc/sysdeps/linux/mips/bits/kernel_sigaction.h,
- * so this should never be used. Lets see whether it is true. */
-struct BUG_is_here { char BUG_is_here[-1]; };
+#if defined(__ia64__)
#undef HAVE_SA_RESTORER
-/* This is the sigaction structure from the Linux 2.1.24 kernel. */
-#include <sgidefs.h>
-struct old_kernel_sigaction {
- __sighandler_t k_sa_handler;
- unsigned int sa_flags;
- unsigned long sa_mask;
-};
-#define _KERNEL_NSIG 128
-#define _KERNEL_NSIG_BPW 32
-#define _KERNEL_NSIG_WORDS (_KERNEL_NSIG / _KERNEL_NSIG_BPW)
-typedef struct {
- unsigned long sig[_KERNEL_NSIG_WORDS];
-} kernel_sigset_t;
-/* This is the sigaction structure from the Linux 2.1.68 kernel. */
-struct kernel_sigaction {
- unsigned int sa_flags;
- __sighandler_t k_sa_handler;
- kernel_sigset_t sa_mask;
- void (*sa_restorer)(void);
- int s_resv[1]; /* reserved */
-};
-
-#elif defined(__ia64__)
-
-#define NO_OLD_SIGACTION
-#undef HAVE_SA_RESTORER
-struct kernel_sigaction {
- __sighandler_t k_sa_handler;
- unsigned long sa_flags;
- sigset_t sa_mask;
-};
#else
#define HAVE_SA_RESTORER
/* This is the sigaction structure from the Linux 2.1.20 kernel. */
struct old_kernel_sigaction {
- __sighandler_t k_sa_handler;
- unsigned long sa_mask;
- unsigned long sa_flags;
- void (*sa_restorer) (void);
-};
-/* This is the sigaction structure from the Linux 2.1.68 kernel. */
-struct kernel_sigaction {
- __sighandler_t k_sa_handler;
- unsigned long sa_flags;
- void (*sa_restorer) (void);
- sigset_t sa_mask;
+ __sighandler_t k_sa_handler;
+ unsigned long sa_mask;
+ unsigned long sa_flags;
+ void (*sa_restorer)(void);
};
+/* In uclibc, userspace struct sigaction is identical to
+ * "new" struct kernel_sigaction (one from the Linux 2.1.68 kernel).
+ * See sigaction.h
+ */
-#endif
+extern int __syscall_sigaction(int, const struct old_kernel_sigaction *,
+ struct old_kernel_sigaction *) attribute_hidden;
-#ifndef NO_OLD_SIGACTION
-extern int __syscall_sigaction (int, const struct old_kernel_sigaction *__unbounded,
- struct old_kernel_sigaction *__unbounded) attribute_hidden;
#endif
-extern int __syscall_rt_sigaction (int, const struct kernel_sigaction *__unbounded,
- struct kernel_sigaction *__unbounded, size_t);
+
+extern int __syscall_rt_sigaction(int, const struct sigaction *,
+ struct sigaction *, size_t) attribute_hidden;
#endif /* _BITS_SIGACTION_STRUCT_H */