Don't use rt_sig*() calls on architectures which have the standard
system calls.
diff --git a/abort.c b/abort.c
index 16557ed..9280d98 100644
--- a/abort.c
+++ b/abort.c
@@ -12,7 +12,7 @@
sigemptyset(&set);
sigaddset(&set, SIGABRT);
- rt_sigprocmask(SIG_UNBLOCK, &set, NULL, sizeof set);
+ sigprocmask(SIG_UNBLOCK, &set, NULL);
raise(SIGABRT);
_exit(255); /* raise() should have killed us */
}
diff --git a/klibc/abort.c b/klibc/abort.c
index 16557ed..9280d98 100644
--- a/klibc/abort.c
+++ b/klibc/abort.c
@@ -12,7 +12,7 @@
sigemptyset(&set);
sigaddset(&set, SIGABRT);
- rt_sigprocmask(SIG_UNBLOCK, &set, NULL, sizeof set);
+ sigprocmask(SIG_UNBLOCK, &set, NULL);
raise(SIGABRT);
_exit(255); /* raise() should have killed us */
}
diff --git a/klibc/sigpending.c b/klibc/sigpending.c
index 8f9241a..afbcf3c 100644
--- a/klibc/sigpending.c
+++ b/klibc/sigpending.c
@@ -3,8 +3,17 @@
*/
#include <signal.h>
+#include <sys/syscall.h>
+
+#ifdef __NR_sigpending
+
+_syscall1(int,sigpending,sigset_t *,set);
+
+#else
int sigpending(sigset_t *set)
{
return rt_sigpending(set, sizeof(sigset_t));
}
+
+#endif
diff --git a/klibc/sigprocmask.c b/klibc/sigprocmask.c
index 1bc23da..3a90f67 100644
--- a/klibc/sigprocmask.c
+++ b/klibc/sigprocmask.c
@@ -3,8 +3,17 @@
*/
#include <signal.h>
+#include <sys/syscall.h>
+
+#ifdef __NR_sigprocmask
+
+_syscall3(int,sigprocmask,int,how,const sigset_t *,set,sigset_t *,oset);
+
+#else
int sigprocmask(int how, const sigset_t *set, sigset_t *oset)
{
return rt_sigprocmask(how, set, oset, sizeof(sigset_t));
}
+
+#endif
diff --git a/klibc/sigsuspend.c b/klibc/sigsuspend.c
index 4f9b5c7..85cdea2 100644
--- a/klibc/sigsuspend.c
+++ b/klibc/sigsuspend.c
@@ -3,8 +3,17 @@
*/
#include <signal.h>
+#include <sys/syscall.h>
+
+#ifdef __NR_sigsuspend
+
+_syscall1(int,sigsuspend,const sigset_t *,mask);
+
+#else
int sigsuspend(const sigset_t *mask)
{
return rt_sigsuspend(mask, sizeof *mask);
}
+
+#endif
diff --git a/sigpending.c b/sigpending.c
index 8f9241a..afbcf3c 100644
--- a/sigpending.c
+++ b/sigpending.c
@@ -3,8 +3,17 @@
*/
#include <signal.h>
+#include <sys/syscall.h>
+
+#ifdef __NR_sigpending
+
+_syscall1(int,sigpending,sigset_t *,set);
+
+#else
int sigpending(sigset_t *set)
{
return rt_sigpending(set, sizeof(sigset_t));
}
+
+#endif
diff --git a/sigprocmask.c b/sigprocmask.c
index 1bc23da..3a90f67 100644
--- a/sigprocmask.c
+++ b/sigprocmask.c
@@ -3,8 +3,17 @@
*/
#include <signal.h>
+#include <sys/syscall.h>
+
+#ifdef __NR_sigprocmask
+
+_syscall3(int,sigprocmask,int,how,const sigset_t *,set,sigset_t *,oset);
+
+#else
int sigprocmask(int how, const sigset_t *set, sigset_t *oset)
{
return rt_sigprocmask(how, set, oset, sizeof(sigset_t));
}
+
+#endif
diff --git a/sigsuspend.c b/sigsuspend.c
index 4f9b5c7..85cdea2 100644
--- a/sigsuspend.c
+++ b/sigsuspend.c
@@ -3,8 +3,17 @@
*/
#include <signal.h>
+#include <sys/syscall.h>
+
+#ifdef __NR_sigsuspend
+
+_syscall1(int,sigsuspend,const sigset_t *,mask);
+
+#else
int sigsuspend(const sigset_t *mask)
{
return rt_sigsuspend(mask, sizeof *mask);
}
+
+#endif