[klibc] [klibc:master] m68k, s390, x86: signal: Stop using broken <asm/signal.h>

klibc-bot for Ben Hutchings ben at decadent.org.uk
Sun Feb 12 14:48:07 PST 2023


Commit-ID:  ea8e91a7db06e623bbefa378e70bd566b3302035
Gitweb:     http://git.kernel.org/?p=libs/klibc/klibc.git;a=commit;h=ea8e91a7db06e623bbefa378e70bd566b3302035
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: Sun, 12 Feb 2023 18:53:53 +0100

[klibc] m68k,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, m68k, 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/m68k/klibc/archsignal.h   | 59 ++++++++++++++++++++++++++++-
 usr/include/arch/s390/klibc/archsignal.h   | 61 +++++++++++++++++++++++++++++-
 usr/include/arch/x86_64/klibc/archsignal.h | 58 +++++++++++++++++++++++++---
 4 files changed, 226 insertions(+), 12 deletions(-)

diff --git a/usr/include/arch/i386/klibc/archsignal.h b/usr/include/arch/i386/klibc/archsignal.h
index c83fc8f2..82395b2c 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/m68k/klibc/archsignal.h b/usr/include/arch/m68k/klibc/archsignal.h
index bf7912ae..59b1ac87 100644
--- a/usr/include/arch/m68k/klibc/archsignal.h
+++ b/usr/include/arch/m68k/klibc/archsignal.h
@@ -8,7 +8,62 @@
 #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
+
+#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