[klibc] [klibc:time64] s390, x86: signal: Stop using broken <asm/signal.h>
klibc-bot for Ben Hutchings
ben at decadent.org.uk
Sat Jan 14 14:03:06 PST 2023
Commit-ID: 68da9edd72efb1d249cc9f4583c25fef7b85710b
Gitweb: http://git.kernel.org/?p=libs/klibc/klibc.git;a=commit;h=68da9edd72efb1d249cc9f4583c25fef7b85710b
Author: Ben Hutchings <ben at decadent.org.uk>
AuthorDate: Sat, 14 Jan 2023 03:04:55 +0100
Committer: Ben Hutchings <ben at decadent.org.uk>
CommitDate: Sat, 14 Jan 2023 18:08:40 +0100
[klibc] s390,x86: signal: Stop using broken <asm/signal.h>
On s390 and x86, <asm/signal.h> includes <linux/time.h>, which will
conflict with 64-bit time definitions. On i386 and s390 it also
defines the non-RT signal API, which we need to move away from.
Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
---
usr/include/arch/i386/klibc/archsignal.h | 60 ++++++++++++++++++++++++++++-
usr/include/arch/s390/klibc/archsignal.h | 61 +++++++++++++++++++++++++++++-
usr/include/arch/x86_64/klibc/archsignal.h | 58 +++++++++++++++++++++++++---
3 files changed, 169 insertions(+), 10 deletions(-)
diff --git a/usr/include/arch/i386/klibc/archsignal.h b/usr/include/arch/i386/klibc/archsignal.h
index c83fc8f2..661131bc 100644
--- a/usr/include/arch/i386/klibc/archsignal.h
+++ b/usr/include/arch/i386/klibc/archsignal.h
@@ -7,8 +7,64 @@
#ifndef _KLIBC_ARCHSIGNAL_H
#define _KLIBC_ARCHSIGNAL_H
-/* The in-kernel headers for i386 got clean up, use them. */
+#define NSIG 32
+typedef unsigned long sigset_t;
-#include <linux/signal.h>
+#define SIGHUP 1
+#define SIGINT 2
+#define SIGQUIT 3
+#define SIGILL 4
+#define SIGTRAP 5
+#define SIGABRT 6
+#define SIGIOT 6
+#define SIGBUS 7
+#define SIGFPE 8
+#define SIGKILL 9
+#define SIGUSR1 10
+#define SIGSEGV 11
+#define SIGUSR2 12
+#define SIGPIPE 13
+#define SIGALRM 14
+#define SIGTERM 15
+#define SIGSTKFLT 16
+#define SIGCHLD 17
+#define SIGCONT 18
+#define SIGSTOP 19
+#define SIGTSTP 20
+#define SIGTTIN 21
+#define SIGTTOU 22
+#define SIGURG 23
+#define SIGXCPU 24
+#define SIGXFSZ 25
+#define SIGVTALRM 26
+#define SIGPROF 27
+#define SIGWINCH 28
+#define SIGIO 29
+#define SIGPOLL SIGIO
+#define SIGPWR 30
+#define SIGSYS 31
+#define SIGUNUSED 31
+
+#define SIGRTMIN 32
+#define SIGRTMAX _NSIG
+
+#define SA_RESTORER 0x04000000
+
+#include <asm-generic/signal-defs.h>
+
+struct siginfo;
+
+struct sigaction {
+ union {
+ __sighandler_t _sa_handler;
+ void (*_sa_sigaction)(int, struct siginfo *, void *);
+ } _u;
+ sigset_t sa_mask;
+ unsigned long sa_flags;
+ void (*sa_restorer)(void);
+};
+
+#define sa_handler _u._sa_handler
+#define sa_sigaction _u._sa_sigaction
#endif
diff --git a/usr/include/arch/s390/klibc/archsignal.h b/usr/include/arch/s390/klibc/archsignal.h
index a16b977a..a79b166b 100644
--- a/usr/include/arch/s390/klibc/archsignal.h
+++ b/usr/include/arch/s390/klibc/archsignal.h
@@ -8,7 +8,64 @@
#ifndef _KLIBC_ARCHSIGNAL_H
#define _KLIBC_ARCHSIGNAL_H
-#include <asm/signal.h>
-/* No special stuff for this architecture */
+#define NSIG 32
+typedef unsigned long sigset_t;
+
+#define SIGHUP 1
+#define SIGINT 2
+#define SIGQUIT 3
+#define SIGILL 4
+#define SIGTRAP 5
+#define SIGABRT 6
+#define SIGIOT 6
+#define SIGBUS 7
+#define SIGFPE 8
+#define SIGKILL 9
+#define SIGUSR1 10
+#define SIGSEGV 11
+#define SIGUSR2 12
+#define SIGPIPE 13
+#define SIGALRM 14
+#define SIGTERM 15
+#define SIGSTKFLT 16
+#define SIGCHLD 17
+#define SIGCONT 18
+#define SIGSTOP 19
+#define SIGTSTP 20
+#define SIGTTIN 21
+#define SIGTTOU 22
+#define SIGURG 23
+#define SIGXCPU 24
+#define SIGXFSZ 25
+#define SIGVTALRM 26
+#define SIGPROF 27
+#define SIGWINCH 28
+#define SIGIO 29
+#define SIGPOLL SIGIO
+#define SIGPWR 30
+#define SIGSYS 31
+#define SIGUNUSED 31
+
+#define SIGRTMIN 32
+#define SIGRTMAX _NSIG
+
+#define SA_RESTORER 0x04000000
+
+#include <asm-generic/signal-defs.h>
+
+struct siginfo;
+
+struct sigaction {
+ union {
+ __sighandler_t _sa_handler;
+ void (*_sa_sigaction)(int, struct siginfo *, void *);
+ } _u;
+ unsigned long sa_flags;
+ void (*sa_restorer)(void);
+ sigset_t sa_mask;
+};
+
+#define sa_handler _u._sa_handler
+#define sa_sigaction _u._sa_sigaction
#endif
diff --git a/usr/include/arch/x86_64/klibc/archsignal.h b/usr/include/arch/x86_64/klibc/archsignal.h
index 6c8ec77c..d68ab821 100644
--- a/usr/include/arch/x86_64/klibc/archsignal.h
+++ b/usr/include/arch/x86_64/klibc/archsignal.h
@@ -8,11 +8,57 @@
#ifndef _KLIBC_ARCHSIGNAL_H
#define _KLIBC_ARCHSIGNAL_H
-#include <asm/signal.h>
-/* The x86-64 headers defines NSIG 32, but it's actually 64 */
-#undef _NSIG
-#undef NSIG
-#define _NSIG 64
-#define NSIG _NSIG
+#define _NSIG 64
+#define NSIG _NSIG
+typedef unsigned long sigset_t;
+
+#define SIGHUP 1
+#define SIGINT 2
+#define SIGQUIT 3
+#define SIGILL 4
+#define SIGTRAP 5
+#define SIGABRT 6
+#define SIGIOT 6
+#define SIGBUS 7
+#define SIGFPE 8
+#define SIGKILL 9
+#define SIGUSR1 10
+#define SIGSEGV 11
+#define SIGUSR2 12
+#define SIGPIPE 13
+#define SIGALRM 14
+#define SIGTERM 15
+#define SIGSTKFLT 16
+#define SIGCHLD 17
+#define SIGCONT 18
+#define SIGSTOP 19
+#define SIGTSTP 20
+#define SIGTTIN 21
+#define SIGTTOU 22
+#define SIGURG 23
+#define SIGXCPU 24
+#define SIGXFSZ 25
+#define SIGVTALRM 26
+#define SIGPROF 27
+#define SIGWINCH 28
+#define SIGIO 29
+#define SIGPOLL SIGIO
+#define SIGPWR 30
+#define SIGSYS 31
+#define SIGUNUSED 31
+
+#define SIGRTMIN 32
+#define SIGRTMAX _NSIG
+
+#define SA_RESTORER 0x04000000
+
+#include <asm-generic/signal-defs.h>
+
+struct sigaction {
+ __sighandler_t sa_handler;
+ unsigned long sa_flags;
+ __sigrestore_t sa_restorer;
+ sigset_t sa_mask; /* mask last for extensibility */
+};
#endif
More information about the klibc
mailing list