public inbox for libc-alpha@sourceware.org
 help / color / mirror / Atom feed
* [PATCH 1/3] signal: Add signum-{generic,arch}.h
@ 2020-04-23 19:26 Adhemerval Zanella
  2020-04-23 19:26 ` [PATCH 2/3] mips: Fix SIGRTMAX definition Adhemerval Zanella
  2020-04-23 19:26 ` [PATCH 3/3] linux: Fix __NSIG_WORDS and add __NSIG_BYTES Adhemerval Zanella
  0 siblings, 2 replies; 5+ messages in thread
From: Adhemerval Zanella @ 2020-04-23 19:26 UTC (permalink / raw)
  To: libc-alpha

It refactor how signals are defined by each architecture.  Instead of
include a generic header (bits/signum-generic.h) and undef non-default
values in an arch specific header (bits/signum.h) the new scheme uses a
common definition (bits/signum-generic.h) and each architectures add
its specific definitions on a new header (bits/signum-arch.h).

For Linux it requires copy some system default definitions to alpha,
hppa, and sparc.  They are historical ones and newer ports uses
the generic Linux signum-arch.h.

For Hurd the BSD signum is removed and moved to a new header (it is
used currently only on Hurd).

Checked on a build against all affected ABIs.
---
 bits/signum-arch.h                            | 59 ++++++++++++++++
 bits/signum-generic.h                         | 29 ++------
 bits/signum.h                                 | 32 ---------
 signal/Makefile                               |  2 +-
 signal/signal.h                               |  2 +-
 sysdeps/mach/hurd/bits/signum-arch.h          | 65 +++++++++++++++++
 sysdeps/unix/bsd/bits/signum.h                | 35 ----------
 .../unix/sysv/linux/alpha/bits/signum-arch.h  | 67 ++++++++++++++++++
 sysdeps/unix/sysv/linux/alpha/bits/signum.h   | 40 -----------
 sysdeps/unix/sysv/linux/bits/signum-arch.h    | 64 +++++++++++++++++
 sysdeps/unix/sysv/linux/bits/signum.h         | 58 ---------------
 .../hppa/bits/{signum.h => signum-arch.h}     | 70 +++++++++----------
 .../unix/sysv/linux/mips/bits/signum-arch.h   | 65 +++++++++++++++++
 sysdeps/unix/sysv/linux/mips/bits/signum.h    | 68 ------------------
 .../unix/sysv/linux/sparc/bits/signum-arch.h  | 66 +++++++++++++++++
 sysdeps/unix/sysv/linux/sparc/bits/signum.h   | 39 -----------
 16 files changed, 424 insertions(+), 337 deletions(-)
 create mode 100644 bits/signum-arch.h
 delete mode 100644 bits/signum.h
 create mode 100644 sysdeps/mach/hurd/bits/signum-arch.h
 delete mode 100644 sysdeps/unix/bsd/bits/signum.h
 create mode 100644 sysdeps/unix/sysv/linux/alpha/bits/signum-arch.h
 delete mode 100644 sysdeps/unix/sysv/linux/alpha/bits/signum.h
 create mode 100644 sysdeps/unix/sysv/linux/bits/signum-arch.h
 delete mode 100644 sysdeps/unix/sysv/linux/bits/signum.h
 rename sysdeps/unix/sysv/linux/hppa/bits/{signum.h => signum-arch.h} (50%)
 create mode 100644 sysdeps/unix/sysv/linux/mips/bits/signum-arch.h
 delete mode 100644 sysdeps/unix/sysv/linux/mips/bits/signum.h
 create mode 100644 sysdeps/unix/sysv/linux/sparc/bits/signum-arch.h
 delete mode 100644 sysdeps/unix/sysv/linux/sparc/bits/signum.h

diff --git a/bits/signum-arch.h b/bits/signum-arch.h
new file mode 100644
index 0000000000..df96e92c01
--- /dev/null
+++ b/bits/signum-arch.h
@@ -0,0 +1,59 @@
+/* Signal number constants.  Specific architecture definitions.
+   Copyright (C) 2020 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, see
+   <https://www.gnu.org/licenses/>.  */
+
+#ifndef	_BITS_SIGNUM_ARCH_H
+#define _BITS_SIGNUM_ARCH_H 1
+
+#ifndef _SIGNAL_H
+#error "Never include <bits/signum-generic.h> directly; use <signal.h> instead."
+#endif
+
+/* Historical signals specified by POSIX. */
+#define SIGBUS		10	/* Bus error.  */
+#define	SIGSYS		12	/* Bad system call.  */
+
+/* New(er) POSIX signals (1003.1-2008, 1003.1-2013).  */
+#define	SIGURG		16	/* Urgent data is available at a socket.  */
+#define	SIGSTOP		17	/* Stop, unblockable.  */
+#define	SIGTSTP		18	/* Keyboard stop.  */
+#define	SIGCONT		19	/* Continue.  */
+#define SIGCHLD         20      /* Child terminated or stopped.  */
+#define	SIGTTIN		21	/* Background read from control terminal.  */
+#define	SIGTTOU		22	/* Background write to control terminal.  */
+#define	SIGPOLL		23	/* Pollable event occurred (System V).  */
+#define	SIGXCPU		24	/* CPU time limit exceeded.  */
+#define	SIGVTALRM	26	/* Virtual timer expired.  */
+#define	SIGPROF		27	/* Profiling timer expired.  */
+#define	SIGXFSZ		25	/* File size limit exceeded.  */
+#define	SIGUSR1		30	/* User-defined signal 1.  */
+#define	SIGUSR2		31	/* User-defined signal 2.  */
+
+/* Nonstandard signals found in all modern POSIX systems
+   (including both BSD and Linux).  */
+#define	SIGWINCH	28	/* Window size change (4.3 BSD, Sun).  */
+
+/* Archaic names for compatibility.  */
+#define	SIGIO		SIGPOLL	/* I/O now possible (4.2 BSD).  */
+#define	SIGIOT		SIGABRT	/* IOT instruction, abort() on a PDP-11.  */
+#define	SIGCLD		SIGCHLD	/* Old System V name */
+
+/* By default no real-time signals are supported.  */
+#define __SIGRTMIN	32
+#define __SIGRTMAX	__SIGRTMIN
+
+#endif
diff --git a/bits/signum-generic.h b/bits/signum-generic.h
index 504e5fb8c8..9b0992b5d5 100644
--- a/bits/signum-generic.h
+++ b/bits/signum-generic.h
@@ -57,35 +57,13 @@
 #define	SIGQUIT		3	/* Quit.  */
 #define	SIGTRAP		5	/* Trace/breakpoint trap.  */
 #define	SIGKILL		9	/* Killed.  */
-#define SIGBUS		10	/* Bus error.  */
-#define	SIGSYS		12	/* Bad system call.  */
 #define	SIGPIPE		13	/* Broken pipe.  */
 #define	SIGALRM		14	/* Alarm clock.  */
 
-/* New(er) POSIX signals (1003.1-2008, 1003.1-2013).  */
-#define	SIGURG		16	/* Urgent data is available at a socket.  */
-#define	SIGSTOP		17	/* Stop, unblockable.  */
-#define	SIGTSTP		18	/* Keyboard stop.  */
-#define	SIGCONT		19	/* Continue.  */
-#define	SIGCHLD		20	/* Child terminated or stopped.  */
-#define	SIGTTIN		21	/* Background read from control terminal.  */
-#define	SIGTTOU		22	/* Background write to control terminal.  */
-#define	SIGPOLL		23	/* Pollable event occurred (System V).  */
-#define	SIGXCPU		24	/* CPU time limit exceeded.  */
-#define	SIGXFSZ		25	/* File size limit exceeded.  */
-#define	SIGVTALRM	26	/* Virtual timer expired.  */
-#define	SIGPROF		27	/* Profiling timer expired.  */
-#define	SIGUSR1		30	/* User-defined signal 1.  */
-#define	SIGUSR2		31	/* User-defined signal 2.  */
-
-/* Nonstandard signals found in all modern POSIX systems
-   (including both BSD and Linux).  */
-#define	SIGWINCH	28	/* Window size change (4.3 BSD, Sun).  */
-
 /* Archaic names for compatibility.  */
 #define	SIGIO		SIGPOLL	/* I/O now possible (4.2 BSD).  */
 #define	SIGIOT		SIGABRT	/* IOT instruction, abort() on a PDP-11.  */
-#define	SIGCLD		SIGCHLD	/* Old System V name */
+#define SIGCLD		SIGCHLD /* Old System V name */
 
 /* Not all systems support real-time signals.  bits/signum.h indicates
    that they are supported by overriding __SIGRTMAX to a value greater
@@ -93,8 +71,9 @@
    but some real-time signals may be used internally by glibc.  Do not
    use these constants in application code; use SIGRTMIN and SIGRTMAX
    (defined in signal.h) instead.  */
-#define __SIGRTMIN	32
-#define __SIGRTMAX	__SIGRTMIN
+
+/* Include system specific bits.  */
+#include <bits/signum-arch.h>
 
 /* Biggest signal number + 1 (including real-time signals).  */
 #define _NSIG		(__SIGRTMAX + 1)
diff --git a/bits/signum.h b/bits/signum.h
deleted file mode 100644
index 183e3c0545..0000000000
--- a/bits/signum.h
+++ /dev/null
@@ -1,32 +0,0 @@
-/* Signal number constants.  Generic version.
-   Copyright (C) 2017-2020 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <https://www.gnu.org/licenses/>.  */
-
-#ifndef _BITS_SIGNUM_H
-#define _BITS_SIGNUM_H 1
-
-#ifndef _SIGNAL_H
-#error "Never include <bits/signum.h> directly; use <signal.h> instead."
-#endif
-
-#include <bits/signum-generic.h>
-
-/* This operating system does not need to override any of the generic
-   signal number assignments in bits/signum-generic.h, nor to add any
-   additional signal constants.  */
-
-#endif /* bits/signum.h.  */
diff --git a/signal/Makefile b/signal/Makefile
index f3c19e2992..2ec3ddd74f 100644
--- a/signal/Makefile
+++ b/signal/Makefile
@@ -23,7 +23,7 @@ subdir	:= signal
 include ../Makeconfig
 
 headers := signal.h sys/signal.h \
-	   bits/signum.h bits/signum-generic.h \
+	   bits/signum-generic.h bits/signum-arch.h \
 	   bits/sigcontext.h bits/sigaction.h \
 	   bits/sigevent-consts.h bits/siginfo-consts.h \
 	   bits/sigstack.h bits/sigthread.h bits/ss_flags.h \
diff --git a/signal/signal.h b/signal/signal.h
index 40825e95ec..fa8de963f8 100644
--- a/signal/signal.h
+++ b/signal/signal.h
@@ -27,7 +27,7 @@
 __BEGIN_DECLS
 
 #include <bits/types.h>
-#include <bits/signum.h>
+#include <bits/signum-generic.h>
 
 #include <bits/types/sig_atomic_t.h>
 
diff --git a/sysdeps/mach/hurd/bits/signum-arch.h b/sysdeps/mach/hurd/bits/signum-arch.h
new file mode 100644
index 0000000000..a267358227
--- /dev/null
+++ b/sysdeps/mach/hurd/bits/signum-arch.h
@@ -0,0 +1,65 @@
+/* Signal number constants.  Specific architecture definitions.
+   Copyright (C) 2020 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, see
+   <https://www.gnu.org/licenses/>.  */
+
+#ifndef _BITS_SIGNUM_ARCH_H
+#define _BITS_SIGNUM_ARCH_H 1
+
+#ifndef _SIGNAL_H
+#error "Never include <bits/signum-arch.h> directly; use <signal.h> instead."
+#endif
+
+/* Historical signals specified by POSIX. */
+#define SIGBUS		10	/* Bus error.  */
+#define	SIGSYS		12	/* Bad system call.  */
+
+/* Adjustments and additions to the signal number constants for
+   4.2 or 4.3 BSD-derived Unix systems.  */
+#define SIGEMT           7      /* Emulator trap (4.2 BSD).  */
+#define SIGINFO         29      /* Information request (4.4 BSD).  */
+#define SIGLOST         32      /* Resource lost (Sun); server died (GNU).  */
+
+/* New(er) POSIX signals (1003.1-2008, 1003.1-2013).  */
+#define	SIGURG		16	/* Urgent data is available at a socket.  */
+#define	SIGSTOP		17	/* Stop, unblockable.  */
+#define	SIGTSTP		18	/* Keyboard stop.  */
+#define	SIGCONT		19	/* Continue.  */
+#define SIGCHLD         20      /* Child terminated or stopped.  */
+#define	SIGTTIN		21	/* Background read from control terminal.  */
+#define	SIGTTOU		22	/* Background write to control terminal.  */
+#define	SIGPOLL		23	/* Pollable event occurred (System V).  */
+#define	SIGXCPU		24	/* CPU time limit exceeded.  */
+#define	SIGVTALRM	26	/* Virtual timer expired.  */
+#define	SIGPROF		27	/* Profiling timer expired.  */
+#define	SIGXFSZ		25	/* File size limit exceeded.  */
+#define	SIGUSR1		30	/* User-defined signal 1.  */
+#define	SIGUSR2		31	/* User-defined signal 2.  */
+
+/* Nonstandard signals found in all modern POSIX systems
+   (including both BSD and Linux).  */
+#define	SIGWINCH	28	/* Window size change (4.3 BSD, Sun).  */
+
+/* Archaic names for compatibility.  */
+#define	SIGIO		SIGPOLL	/* I/O now possible (4.2 BSD).  */
+#define	SIGIOT		SIGABRT	/* IOT instruction, abort() on a PDP-11.  */
+#define	SIGCLD		SIGCHLD	/* Old System V name */
+
+/* No real-time signals are supported.  */
+#define __SIGRTMIN	32
+#define __SIGRTMAX	__SIGRTMIN
+
+#endif
diff --git a/sysdeps/unix/bsd/bits/signum.h b/sysdeps/unix/bsd/bits/signum.h
deleted file mode 100644
index a8d47af038..0000000000
--- a/sysdeps/unix/bsd/bits/signum.h
+++ /dev/null
@@ -1,35 +0,0 @@
-/* Signal number definitions.  BSD version.
-   Copyright (C) 1991-2020 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <https://www.gnu.org/licenses/>.  */
-
-#ifndef _BITS_SIGNUM_H
-#define _BITS_SIGNUM_H 1
-
-#ifndef _SIGNAL_H
-#error "Never include <bits/signum.h> directly; use <signal.h> instead."
-#endif
-
-#include <bits/signum-generic.h>
-
-/* Adjustments and additions to the signal number constants for
-   4.2 or 4.3 BSD-derived Unix systems.  */
-
-#define SIGEMT		 7	/* Emulator trap (4.2 BSD).  */
-#define SIGINFO		29	/* Information request (4.4 BSD).  */
-#define SIGLOST		32	/* Resource lost (Sun); server died (GNU).  */
-
-#endif /* bits/signum.h.  */
diff --git a/sysdeps/unix/sysv/linux/alpha/bits/signum-arch.h b/sysdeps/unix/sysv/linux/alpha/bits/signum-arch.h
new file mode 100644
index 0000000000..a28f181916
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/alpha/bits/signum-arch.h
@@ -0,0 +1,67 @@
+/* Signal number definitions.  Linux/Alpha version.
+   Copyright (C) 1996-2020 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library.  If not, see
+   <https://www.gnu.org/licenses/>.  */
+
+#ifndef _BITS_SIGNUM_ARHC_H
+#define _BITS_SIGNUM_ARCH_H 1
+
+#ifndef _SIGNAL_H
+#error "Never include <bits/signum-arch.h> directly; use <signal.h> instead."
+#endif
+
+/* Adjustments and additions to the signal number constants for
+   Linux/Alpha.  Signal values on this platform were chosen for OSF/1
+   binary compatibility, and are therefore almost identical to the
+   BSD-derived defaults.  */
+
+#define SIGEMT		 7	/* Emulator trap (4.2 BSD).  */
+#define SIGINFO		29	/* Information request (BSD).  */
+#define SIGPWR		SIGINFO	/* Power failure imminent (System V).  */
+
+/* Historical signals specified by POSIX. */
+#define SIGBUS		10	/* Bus error.  */
+#define	SIGSYS		12	/* Bad system call.  */
+
+/* New(er) POSIX signals (1003.1-2008, 1003.1-2013).  */
+#define	SIGURG		16	/* Urgent data is available at a socket.  */
+#define	SIGSTOP		17	/* Stop, unblockable.  */
+#define	SIGTSTP		18	/* Keyboard stop.  */
+#define	SIGCONT		19	/* Continue.  */
+#define SIGCHLD         20      /* Child terminated or stopped.  */
+#define	SIGTTIN		21	/* Background read from control terminal.  */
+#define	SIGTTOU		22	/* Background write to control terminal.  */
+#define	SIGPOLL		23	/* Pollable event occurred (System V).  */
+#define	SIGXCPU		24	/* CPU time limit exceeded.  */
+#define	SIGVTALRM	26	/* Virtual timer expired.  */
+#define	SIGPROF		27	/* Profiling timer expired.  */
+#define	SIGXFSZ		25	/* File size limit exceeded.  */
+#define	SIGUSR1		30	/* User-defined signal 1.  */
+#define	SIGUSR2		31	/* User-defined signal 2.  */
+
+/* Nonstandard signals found in all modern POSIX systems
+   (including both BSD and Linux).  */
+#define	SIGWINCH	28
+
+/* Archaic names for compatibility.  */
+#define	SIGIO		SIGPOLL	/* I/O now possible (4.2 BSD).  */
+#define	SIGIOT		SIGABRT	/* IOT instruction, abort() on a PDP-11.  */
+#define SIGCLD		SIGCHLD /* Old System V name */
+
+#define __SIGRTMIN	32
+#define __SIGRTMAX	64
+
+#endif	/* <signal.h> included.  */
diff --git a/sysdeps/unix/sysv/linux/alpha/bits/signum.h b/sysdeps/unix/sysv/linux/alpha/bits/signum.h
deleted file mode 100644
index 63add0e3db..0000000000
--- a/sysdeps/unix/sysv/linux/alpha/bits/signum.h
+++ /dev/null
@@ -1,40 +0,0 @@
-/* Signal number definitions.  Linux/Alpha version.
-   Copyright (C) 1996-2020 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library.  If not, see
-   <https://www.gnu.org/licenses/>.  */
-
-#ifndef _BITS_SIGNUM_H
-#define _BITS_SIGNUM_H 1
-
-#ifndef _SIGNAL_H
-#error "Never include <bits/signum.h> directly; use <signal.h> instead."
-#endif
-
-#include <bits/signum-generic.h>
-
-/* Adjustments and additions to the signal number constants for
-   Linux/Alpha.  Signal values on this platform were chosen for OSF/1
-   binary compatibility, and are therefore almost identical to the
-   BSD-derived defaults.  */
-
-#define SIGEMT		 7	/* Emulator trap (4.2 BSD).  */
-#define SIGINFO		29	/* Information request (BSD).  */
-#define SIGPWR		SIGINFO	/* Power failure imminent (System V).  */
-
-#undef	__SIGRTMAX
-#define __SIGRTMAX	64
-
-#endif	/* <signal.h> included.  */
diff --git a/sysdeps/unix/sysv/linux/bits/signum-arch.h b/sysdeps/unix/sysv/linux/bits/signum-arch.h
new file mode 100644
index 0000000000..0dfe3d954d
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/bits/signum-arch.h
@@ -0,0 +1,64 @@
+/* Signal number definitions.  Linux version.
+   Copyright (C) 1995-2020 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, see
+   <https://www.gnu.org/licenses/>.  */
+
+#ifndef _BITS_SIGNUM_ARHC_H
+#define _BITS_SIGNUM_ARCH_H 1
+
+#ifndef _SIGNAL_H
+#error "Never include <bits/signum-arch.h> directly; use <signal.h> instead."
+#endif
+
+/* Adjustments and additions to the signal number constants for
+   most Linux systems.  */
+
+#define	SIGSTKFLT	16	/* Stack fault (obsolete).  */
+#define	SIGPWR		30	/* Power failure imminent.  */
+
+/* Historical signals specified by POSIX. */
+#define	SIGBUS		 7	/* Bus error.  */
+#define SIGSYS		31	/* Bad system call.  */
+
+/* New(er) POSIX signals (1003.1-2008, 1003.1-2013).  */
+#define	SIGURG		23	/* Urgent data is available at a socket.  */
+#define	SIGSTOP		19	/* Stop, unblockable.  */
+#define	SIGTSTP		20	/* Keyboard stop.  */
+#define	SIGCONT		18	/* Continue.  */
+#define	SIGCHLD		17	/* Child terminated or stopped.  */
+#define	SIGTTIN		21	/* Background read from control terminal.  */
+#define	SIGTTOU		22	/* Background write to control terminal.  */
+#define	SIGPOLL		29	/* Pollable event occurred (System V).  */
+#define	SIGXFSZ		25	/* File size limit exceeded.  */
+#define	SIGXCPU		24	/* CPU time limit exceeded.  */
+#define	SIGVTALRM	26	/* Virtual timer expired.  */
+#define	SIGPROF		27	/* Profiling timer expired.  */
+#define	SIGUSR1		10	/* User-defined signal 1.  */
+#define	SIGUSR2		12	/* User-defined signal 2.  */
+
+/* Nonstandard signals found in all modern POSIX systems
+   (including both BSD and Linux).  */
+#define	SIGWINCH	28	/* Window size change (4.3 BSD, Sun).  */
+
+/* Archaic names for compatibility.  */
+#define	SIGIO		SIGPOLL	/* I/O now possible (4.2 BSD).  */
+#define	SIGIOT		SIGABRT	/* IOT instruction, abort() on a PDP-11.  */
+#define	SIGCLD		SIGCHLD	/* Old System V name */
+
+#define __SIGRTMIN	32
+#define __SIGRTMAX	64
+
+#endif	/* <signal.h> included.  */
diff --git a/sysdeps/unix/sysv/linux/bits/signum.h b/sysdeps/unix/sysv/linux/bits/signum.h
deleted file mode 100644
index 423fd8be70..0000000000
--- a/sysdeps/unix/sysv/linux/bits/signum.h
+++ /dev/null
@@ -1,58 +0,0 @@
-/* Signal number definitions.  Linux version.
-   Copyright (C) 1995-2020 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <https://www.gnu.org/licenses/>.  */
-
-#ifndef _BITS_SIGNUM_H
-#define _BITS_SIGNUM_H 1
-
-#ifndef _SIGNAL_H
-#error "Never include <bits/signum.h> directly; use <signal.h> instead."
-#endif
-
-#include <bits/signum-generic.h>
-
-/* Adjustments and additions to the signal number constants for
-   most Linux systems.  */
-
-#define	SIGSTKFLT	16	/* Stack fault (obsolete).  */
-#define	SIGPWR		30	/* Power failure imminent.  */
-
-#undef	SIGBUS
-#define	SIGBUS		 7
-#undef	SIGUSR1
-#define	SIGUSR1		10
-#undef	SIGUSR2
-#define	SIGUSR2		12
-#undef	SIGCHLD
-#define	SIGCHLD		17
-#undef	SIGCONT
-#define	SIGCONT		18
-#undef	SIGSTOP
-#define	SIGSTOP		19
-#undef	SIGTSTP
-#define	SIGTSTP		20
-#undef	SIGURG
-#define	SIGURG		23
-#undef	SIGPOLL
-#define	SIGPOLL		29
-#undef	SIGSYS
-#define SIGSYS		31
-
-#undef	__SIGRTMAX
-#define __SIGRTMAX	64
-
-#endif	/* <signal.h> included.  */
diff --git a/sysdeps/unix/sysv/linux/hppa/bits/signum.h b/sysdeps/unix/sysv/linux/hppa/bits/signum-arch.h
similarity index 50%
rename from sysdeps/unix/sysv/linux/hppa/bits/signum.h
rename to sysdeps/unix/sysv/linux/hppa/bits/signum-arch.h
index 2210304e37..20975b9c94 100644
--- a/sysdeps/unix/sysv/linux/hppa/bits/signum.h
+++ b/sysdeps/unix/sysv/linux/hppa/bits/signum-arch.h
@@ -16,15 +16,13 @@
    License along with the GNU C Library.  If not, see
    <https://www.gnu.org/licenses/>.  */
 
-#ifndef _BITS_SIGNUM_H
-#define _BITS_SIGNUM_H 1
+#ifndef _BITS_SIGNUM_ARCH_H
+#define _BITS_SIGNUM_ARCH_H 1
 
 #ifndef _SIGNAL_H
-#error "Never include <bits/signum.h> directly; use <signal.h> instead."
+#error "Never include <bits/signum-arch.h> directly; use <signal.h> instead."
 #endif
 
-#include <bits/signum-generic.h>
-
 /* Adjustments and additions to the signal number constants for
    Linux/HPPA.  These values were originally chosen for HP/UX
    compatibility, but were renumbered as of kernel 3.17 and glibc 2.21
@@ -36,40 +34,36 @@
 #define	SIGSTKFLT	 7	/* Stack fault (obsolete).  */
 #define	SIGPWR		19	/* Power failure imminent.  */
 
-#undef	SIGXCPU
-#define	SIGXCPU		12
-#undef	SIGUSR1
-#define	SIGUSR1		16
-#undef	SIGUSR2
-#define SIGUSR2		17
-#undef	SIGCHLD
-#define	SIGCHLD		18
-#undef	SIGVTALRM
-#define	SIGVTALRM	20
-#undef	SIGPROF
-#define	SIGPROF		21
-#undef	SIGPOLL
-#define	SIGPOLL		22
-#undef	SIGWINCH
-#define	SIGWINCH	23
-#undef	SIGSTOP
-#define	SIGSTOP		24
-#undef	SIGTSTP
-#define	SIGTSTP		25
-#undef	SIGCONT
-#define	SIGCONT		26
-#undef	SIGTTIN
-#define	SIGTTIN		27
-#undef	SIGTTOU
-#define	SIGTTOU		28
-#undef	SIGURG
-#define	SIGURG		29
-#undef	SIGXFSZ
-#define	SIGXFSZ		30
-#undef	SIGSYS
-#define SIGSYS		31
+/* Historical signals specified by POSIX. */
+#define SIGBUS		10	/* Bus error.  */
+#define	SIGSYS		31	/* Bad system call.  */
+
+/* New(er) POSIX signals (1003.1-2008, 1003.1-2013).  */
+#define	SIGURG		29	/* Urgent data is available at a socket.  */
+#define	SIGSTOP		24	/* Stop, unblockable.  */
+#define	SIGTSTP		25	/* Keyboard stop.  */
+#define	SIGCONT		26	/* Continue.  */
+#define SIGCHLD         18	/* Child terminated or stopped.  */
+#define	SIGTTIN		27	/* Background read from control terminal.  */
+#define	SIGTTOU		28	/* Background write to control terminal.  */
+#define	SIGPOLL		22	/* Pollable event occurred (System V).  */
+#define	SIGXCPU		12	/* CPU time limit exceeded.  */
+#define	SIGVTALRM	20	/* Virtual timer expired.  */
+#define	SIGPROF		21	/* Profiling timer expired.  */
+#define	SIGXFSZ		30	/* File size limit exceeded.  */
+#define	SIGUSR1		16	/* User-defined signal 1.  */
+#define	SIGUSR2		17	/* User-defined signal 2.  */
+
+/* Nonstandard signals found in all modern POSIX systems
+   (including both BSD and Linux).  */
+#define	SIGWINCH	23	/* Window size change (4.3 BSD, Sun).  */
+
+/* Archaic names for compatibility.  */
+#define SIGIO		SIGPOLL /* I/O now possible (4.2 BSD).  */
+#define SIGIOT		SIGABRT /* IOT instruction, abort() on a PDP-11.  */
+#define SIGCLD		SIGCHLD /* Old System V name */
 
-#undef	__SIGRTMAX
+#define __SIGRTMIN	32
 #define __SIGRTMAX	64
 
 #endif	/* <signal.h> included.  */
diff --git a/sysdeps/unix/sysv/linux/mips/bits/signum-arch.h b/sysdeps/unix/sysv/linux/mips/bits/signum-arch.h
new file mode 100644
index 0000000000..36b1d62e35
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/mips/bits/signum-arch.h
@@ -0,0 +1,65 @@
+/* Signal number definitions.  Linux/MIPS version.
+   Copyright (C) 1995-2020 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library.  If not, see
+   <https://www.gnu.org/licenses/>.  */
+
+#ifndef _BITS_SIGNUM_H
+#define _BITS_SIGNUM_H 1
+
+#ifndef _SIGNAL_H
+#error "Never include <bits/signum.h> directly; use <signal.h> instead."
+#endif
+
+/* Adjustments and additions to the signal number constants for
+   Linux/MIPS.  */
+
+#define SIGEMT		 7	/* Emulator trap.  */
+#define SIGPWR		19	/* Power failure imminent.  */
+
+/* Historical signals specified by POSIX. */
+#define SIGBUS		10	/* Bus error.  */
+#define	SIGSYS		12	/* Bad system call.  */
+
+/* New(er) POSIX signals (1003.1-2008, 1003.1-2013).  */
+#define	SIGURG		21	/* Urgent data is available at a socket.  */
+#define	SIGSTOP		23	/* Stop, unblockable.  */
+#define	SIGTSTP		24	/* Keyboard stop.  */
+#define	SIGCONT		25	/* Continue.  */
+#define SIGCHLD         18      /* Child terminated or stopped.  */
+#define	SIGTTIN		26	/* Background read from control terminal.  */
+#define	SIGTTOU		27	/* Background write to control terminal.  */
+#define	SIGPOLL		22	/* Pollable event occurred (System V).  */
+#define	SIGXCPU		30	/* CPU time limit exceeded.  */
+#define	SIGVTALRM	28	/* Virtual timer expired.  */
+#define	SIGPROF		29	/* Profiling timer expired.  */
+#define	SIGXFSZ		31	/* File size limit exceeded.  */
+#define	SIGUSR1		16	/* User-defined signal 1.  */
+#define	SIGUSR2		17	/* User-defined signal 2.  */
+
+/* Nonstandard signals found in all modern POSIX systems
+   (including both BSD and Linux).  */
+#define	SIGWINCH	20	/* Window size change (4.3 BSD, Sun).  */
+
+/* Archaic names for compatibility.  */
+#define	SIGIO		SIGPOLL	/* I/O now possible (4.2 BSD).  */
+#define	SIGIOT		SIGABRT	/* IOT instruction, abort() on a PDP-11.  */
+#define SIGCLD		SIGCHLD /* Old System V name */
+
+/* By default no real-time signals are supported.  */
+#define __SIGRTMIN	32
+#define __SIGRTMAX	127
+
+#endif	/* <signal.h> included.  */
diff --git a/sysdeps/unix/sysv/linux/mips/bits/signum.h b/sysdeps/unix/sysv/linux/mips/bits/signum.h
deleted file mode 100644
index f5a5e7b4cd..0000000000
--- a/sysdeps/unix/sysv/linux/mips/bits/signum.h
+++ /dev/null
@@ -1,68 +0,0 @@
-/* Signal number definitions.  Linux/MIPS version.
-   Copyright (C) 1995-2020 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library.  If not, see
-   <https://www.gnu.org/licenses/>.  */
-
-#ifndef _BITS_SIGNUM_H
-#define _BITS_SIGNUM_H 1
-
-#ifndef _SIGNAL_H
-#error "Never include <bits/signum.h> directly; use <signal.h> instead."
-#endif
-
-#include <bits/signum-generic.h>
-
-/* Adjustments and additions to the signal number constants for
-   Linux/MIPS.  */
-
-#define SIGEMT		 7	/* Emulator trap.  */
-#define SIGPWR		19	/* Power failure imminent.  */
-
-#undef	SIGUSR1
-#define SIGUSR1		16
-#undef	SIGUSR2
-#define SIGUSR2		17
-#undef	SIGCHLD
-#define SIGCHLD		18
-#undef	SIGWINCH
-#define SIGWINCH	20
-#undef	SIGURG
-#define SIGURG		21
-#undef	SIGPOLL
-#define SIGPOLL		22
-#undef	SIGSTOP
-#define SIGSTOP		23
-#undef	SIGTSTP
-#define SIGTSTP		24
-#undef	SIGCONT
-#define SIGCONT		25
-#undef	SIGTTIN
-#define SIGTTIN		26
-#undef	SIGTTOU
-#define SIGTTOU		27
-#undef	SIGVTALRM
-#define SIGVTALRM	28
-#undef	SIGPROF
-#define SIGPROF		29
-#undef	SIGXCPU
-#define SIGXCPU		30
-#undef	SIGXFSZ
-#define SIGXFSZ		31
-
-#undef	__SIGRTMAX
-#define __SIGRTMAX	127
-
-#endif	/* <signal.h> included.  */
diff --git a/sysdeps/unix/sysv/linux/sparc/bits/signum-arch.h b/sysdeps/unix/sysv/linux/sparc/bits/signum-arch.h
new file mode 100644
index 0000000000..a8b643ce34
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/sparc/bits/signum-arch.h
@@ -0,0 +1,66 @@
+/* Signal number definitions.  Linux/SPARC version.
+   Copyright (C) 1996-2020 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, see
+   <https://www.gnu.org/licenses/>.  */
+
+#ifndef _BITS_SIGNUM_ARHC_H
+#define _BITS_SIGNUM_ARCH_H 1
+
+#ifndef _SIGNAL_H
+#error "Never include <bits/signum-arch.h> directly; use <signal.h> instead."
+#endif
+
+/* Adjustments and additions to the signal number constants for
+   Linux/SPARC systems.  Signal values on this platform were chosen
+   for SunOS binary compatibility.  */
+
+#define SIGEMT		 7	/* Emulator trap.  */
+#define SIGLOST		29	/* Resource lost (Sun); server died (GNU).  */
+#define SIGPWR		SIGLOST	/* Power failure imminent (SysV).  */
+
+/* Historical signals specified by POSIX. */
+#define SIGBUS		10	/* Bus error.  */
+#define	SIGSYS		12	/* Bad system call.  */
+
+/* New(er) POSIX signals (1003.1-2008, 1003.1-2013).  */
+#define	SIGURG		16	/* Urgent data is available at a socket.  */
+#define	SIGSTOP		17	/* Stop, unblockable.  */
+#define	SIGTSTP		18	/* Keyboard stop.  */
+#define	SIGCONT		19	/* Continue.  */
+#define SIGCHLD         20      /* Child terminated or stopped.  */
+#define	SIGTTIN		21	/* Background read from control terminal.  */
+#define	SIGTTOU		22	/* Background write to control terminal.  */
+#define	SIGPOLL		23	/* Pollable event occurred (System V).  */
+#define	SIGXCPU		24	/* CPU time limit exceeded.  */
+#define	SIGVTALRM	26	/* Virtual timer expired.  */
+#define	SIGPROF		27	/* Profiling timer expired.  */
+#define	SIGXFSZ		25	/* File size limit exceeded.  */
+#define	SIGUSR1		30	/* User-defined signal 1.  */
+#define	SIGUSR2		31	/* User-defined signal 2.  */
+
+/* Nonstandard signals found in all modern POSIX systems
+   (including both BSD and Linux).  */
+#define	SIGWINCH	28	/* Window size change (4.3 BSD, Sun).  */
+
+/* Archaic names for compatibility.  */
+#define SIGIO		SIGPOLL /* I/O now possible (4.2 BSD).  */
+#define SIGIOT		SIGABRT /* IOT instruction, abort() on a PDP-11.  */
+#define SIGCLD		SIGCHLD /* Old System V name */
+
+#define __SIGRTMIN	32
+#define __SIGRTMAX	64
+
+#endif	/* <signal.h> included.  */
diff --git a/sysdeps/unix/sysv/linux/sparc/bits/signum.h b/sysdeps/unix/sysv/linux/sparc/bits/signum.h
deleted file mode 100644
index 40fb39a435..0000000000
--- a/sysdeps/unix/sysv/linux/sparc/bits/signum.h
+++ /dev/null
@@ -1,39 +0,0 @@
-/* Signal number definitions.  Linux/SPARC version.
-   Copyright (C) 1996-2020 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <https://www.gnu.org/licenses/>.  */
-
-#ifndef _BITS_SIGNUM_H
-#define _BITS_SIGNUM_H 1
-
-#ifndef _SIGNAL_H
-#error "Never include <bits/signum.h> directly; use <signal.h> instead."
-#endif
-
-#include <bits/signum-generic.h>
-
-/* Adjustments and additions to the signal number constants for
-   Linux/SPARC systems.  Signal values on this platform were chosen
-   for SunOS binary compatibility.  */
-
-#define SIGEMT		 7	/* Emulator trap.  */
-#define SIGLOST		29	/* Resource lost (Sun); server died (GNU).  */
-#define SIGPWR		SIGLOST	/* Power failure imminent (SysV).  */
-
-#undef	__SIGRTMAX
-#define __SIGRTMAX	64
-
-#endif	/* <signal.h> included.  */
-- 
2.17.1


^ permalink raw reply	[flat|nested] 5+ messages in thread

* [PATCH 2/3] mips: Fix SIGRTMAX definition
  2020-04-23 19:26 [PATCH 1/3] signal: Add signum-{generic,arch}.h Adhemerval Zanella
@ 2020-04-23 19:26 ` Adhemerval Zanella
  2020-04-23 20:41   ` Joseph Myers
  2020-04-23 19:26 ` [PATCH 3/3] linux: Fix __NSIG_WORDS and add __NSIG_BYTES Adhemerval Zanella
  1 sibling, 1 reply; 5+ messages in thread
From: Adhemerval Zanella @ 2020-04-23 19:26 UTC (permalink / raw)
  To: libc-alpha

MIPS support up to 96 real time signal, instead of current 95.  This
increases the NSIG value, however it does not incur in a compat
issue for older programs (which won't access the new element).
The sys_siglist is automatically expanded as well.

Checked with a mips*-linux-gnu build.
---
 sysdeps/unix/sysv/linux/mips/bits/signum-arch.h      | 2 +-
 sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist | 6 +++---
 sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist | 6 +++---
 sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist | 6 +++---
 4 files changed, 10 insertions(+), 10 deletions(-)

diff --git a/sysdeps/unix/sysv/linux/mips/bits/signum-arch.h b/sysdeps/unix/sysv/linux/mips/bits/signum-arch.h
index 36b1d62e35..a9d5f41e66 100644
--- a/sysdeps/unix/sysv/linux/mips/bits/signum-arch.h
+++ b/sysdeps/unix/sysv/linux/mips/bits/signum-arch.h
@@ -60,6 +60,6 @@
 
 /* By default no real-time signals are supported.  */
 #define __SIGRTMIN	32
-#define __SIGRTMAX	127
+#define __SIGRTMAX	128
 
 #endif	/* <signal.h> included.  */
diff --git a/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist
index a6f99a7369..e0568438b6 100644
--- a/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist
@@ -2077,7 +2077,7 @@ GLIBC_2.3.2 pthread_cond_signal F
 GLIBC_2.3.2 pthread_cond_timedwait F
 GLIBC_2.3.2 pthread_cond_wait F
 GLIBC_2.3.2 strptime_l F
-GLIBC_2.3.3 _sys_siglist D 0x200
+GLIBC_2.3.3 _sys_siglist D 0x204
 GLIBC_2.3.3 gnu_dev_major F
 GLIBC_2.3.3 gnu_dev_makedev F
 GLIBC_2.3.3 gnu_dev_minor F
@@ -2095,8 +2095,8 @@ GLIBC_2.3.3 remap_file_pages F
 GLIBC_2.3.3 sched_getaffinity F
 GLIBC_2.3.3 sched_setaffinity F
 GLIBC_2.3.3 semtimedop F
-GLIBC_2.3.3 sys_sigabbrev D 0x200
-GLIBC_2.3.3 sys_siglist D 0x200
+GLIBC_2.3.3 sys_sigabbrev D 0x204
+GLIBC_2.3.3 sys_siglist D 0x204
 GLIBC_2.3.4 __chk_fail F
 GLIBC_2.3.4 __fprintf_chk F
 GLIBC_2.3.4 __gets_chk F
diff --git a/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist
index 99965cfb0f..70e2e9a8c5 100644
--- a/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist
@@ -2083,7 +2083,7 @@ GLIBC_2.3.2 pthread_cond_signal F
 GLIBC_2.3.2 pthread_cond_timedwait F
 GLIBC_2.3.2 pthread_cond_wait F
 GLIBC_2.3.2 strptime_l F
-GLIBC_2.3.3 _sys_siglist D 0x200
+GLIBC_2.3.3 _sys_siglist D 0x204
 GLIBC_2.3.3 gnu_dev_major F
 GLIBC_2.3.3 gnu_dev_makedev F
 GLIBC_2.3.3 gnu_dev_minor F
@@ -2101,8 +2101,8 @@ GLIBC_2.3.3 remap_file_pages F
 GLIBC_2.3.3 sched_getaffinity F
 GLIBC_2.3.3 sched_setaffinity F
 GLIBC_2.3.3 semtimedop F
-GLIBC_2.3.3 sys_sigabbrev D 0x200
-GLIBC_2.3.3 sys_siglist D 0x200
+GLIBC_2.3.3 sys_sigabbrev D 0x204
+GLIBC_2.3.3 sys_siglist D 0x204
 GLIBC_2.3.4 __chk_fail F
 GLIBC_2.3.4 __fprintf_chk F
 GLIBC_2.3.4 __gets_chk F
diff --git a/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist
index 2c8bafc669..4e0f236115 100644
--- a/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist
+++ b/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist
@@ -2076,7 +2076,7 @@ GLIBC_2.3.2 pthread_cond_signal F
 GLIBC_2.3.2 pthread_cond_timedwait F
 GLIBC_2.3.2 pthread_cond_wait F
 GLIBC_2.3.2 strptime_l F
-GLIBC_2.3.3 _sys_siglist D 0x400
+GLIBC_2.3.3 _sys_siglist D 0x408
 GLIBC_2.3.3 gnu_dev_major F
 GLIBC_2.3.3 gnu_dev_makedev F
 GLIBC_2.3.3 gnu_dev_minor F
@@ -2095,8 +2095,8 @@ GLIBC_2.3.3 sched_setaffinity F
 GLIBC_2.3.3 semtimedop F
 GLIBC_2.3.3 strtoll_l F
 GLIBC_2.3.3 strtoull_l F
-GLIBC_2.3.3 sys_sigabbrev D 0x400
-GLIBC_2.3.3 sys_siglist D 0x400
+GLIBC_2.3.3 sys_sigabbrev D 0x408
+GLIBC_2.3.3 sys_siglist D 0x408
 GLIBC_2.3.4 __chk_fail F
 GLIBC_2.3.4 __fprintf_chk F
 GLIBC_2.3.4 __gets_chk F
-- 
2.17.1


^ permalink raw reply	[flat|nested] 5+ messages in thread

* [PATCH 3/3] linux: Fix __NSIG_WORDS and add __NSIG_BYTES
  2020-04-23 19:26 [PATCH 1/3] signal: Add signum-{generic,arch}.h Adhemerval Zanella
  2020-04-23 19:26 ` [PATCH 2/3] mips: Fix SIGRTMAX definition Adhemerval Zanella
@ 2020-04-23 19:26 ` Adhemerval Zanella
  1 sibling, 0 replies; 5+ messages in thread
From: Adhemerval Zanella @ 2020-04-23 19:26 UTC (permalink / raw)
  To: libc-alpha

The __NSIG_WORDS value is based on minimum number of words to hold
the maximum number of signal supported by the architecture.  Maximum
number of signals non multiple of word is rounded up.

This patch also adds __NSIG_BYTES, which is the number of bytes
required to represent the support number of signals.  It is used on
syscall which takes a sigset_t.

Checked on x86_64-linux-gnu and i686-linux-gnu.
---
 include/signal.h                           |  2 ++
 nptl/nptl-init.c                           |  2 +-
 nptl/pthread_create.c                      |  2 +-
 nptl/pthread_sigmask.c                     |  2 +-
 sysdeps/unix/sysv/linux/aio_misc.h         |  9 ++++++---
 sysdeps/unix/sysv/linux/epoll_pwait.c      |  2 +-
 sysdeps/unix/sysv/linux/internal-signals.h | 10 +++++-----
 sysdeps/unix/sysv/linux/ppoll.c            |  7 ++++---
 sysdeps/unix/sysv/linux/pselect.c          |  2 +-
 sysdeps/unix/sysv/linux/sigaction.c        |  3 ++-
 sysdeps/unix/sysv/linux/signalfd.c         |  2 +-
 sysdeps/unix/sysv/linux/sigpending.c       |  2 +-
 sysdeps/unix/sysv/linux/sigsetops.h        | 18 +++++++++++++-----
 sysdeps/unix/sysv/linux/sigsuspend.c       |  2 +-
 sysdeps/unix/sysv/linux/sigtimedwait.c     |  3 ++-
 sysdeps/unix/sysv/linux/x86/setjmpP.h      |  5 ++---
 16 files changed, 44 insertions(+), 29 deletions(-)

diff --git a/include/signal.h b/include/signal.h
index 293258ad65..229b1eb352 100644
--- a/include/signal.h
+++ b/include/signal.h
@@ -2,6 +2,8 @@
 # include <signal/signal.h>
 
 # ifndef _ISOMAC
+#  include <sigsetops.h>
+
 libc_hidden_proto (sigemptyset)
 libc_hidden_proto (sigfillset)
 libc_hidden_proto (sigaddset)
diff --git a/nptl/nptl-init.c b/nptl/nptl-init.c
index 96b1444a01..ed450a09fd 100644
--- a/nptl/nptl-init.c
+++ b/nptl/nptl-init.c
@@ -281,7 +281,7 @@ __pthread_initialize_minimal_internal (void)
   __sigaddset (&sa.sa_mask, SIGCANCEL);
   __sigaddset (&sa.sa_mask, SIGSETXID);
   INTERNAL_SYSCALL_CALL (rt_sigprocmask, SIG_UNBLOCK, &sa.sa_mask,
-			 NULL, _NSIG / 8);
+			 NULL, __NSIG_BYTES);
 
   /* Get the size of the static and alignment requirements for the TLS
      block.  */
diff --git a/nptl/pthread_create.c b/nptl/pthread_create.c
index 7c752d0f99..479675e6a1 100644
--- a/nptl/pthread_create.c
+++ b/nptl/pthread_create.c
@@ -408,7 +408,7 @@ START_THREAD_DEFN
       __sigemptyset (&mask);
       __sigaddset (&mask, SIGCANCEL);
       INTERNAL_SYSCALL_CALL (rt_sigprocmask, SIG_UNBLOCK, &mask,
-			     NULL, _NSIG / 8);
+			     NULL, __NSIG_BYTES);
     }
 
   /* This is where the try/finally block should be created.  For
diff --git a/nptl/pthread_sigmask.c b/nptl/pthread_sigmask.c
index d266d296c5..7b65ae1f27 100644
--- a/nptl/pthread_sigmask.c
+++ b/nptl/pthread_sigmask.c
@@ -39,7 +39,7 @@ __pthread_sigmask (int how, const sigset_t *newmask, sigset_t *oldmask)
 
   /* We know that realtime signals are available if NPTL is used.  */
   int result = INTERNAL_SYSCALL_CALL (rt_sigprocmask, how, newmask,
-				      oldmask, _NSIG / 8);
+				      oldmask, __NSIG_BYTES);
 
   return (INTERNAL_SYSCALL_ERROR_P (result)
 	  ? INTERNAL_SYSCALL_ERRNO (result)
diff --git a/sysdeps/unix/sysv/linux/aio_misc.h b/sysdeps/unix/sysv/linux/aio_misc.h
index 30c3cd778e..e31ca8edbe 100644
--- a/sysdeps/unix/sysv/linux/aio_misc.h
+++ b/sysdeps/unix/sysv/linux/aio_misc.h
@@ -31,7 +31,8 @@ __aio_start_notify_thread (void)
 {
   sigset_t ss;
   sigemptyset (&ss);
-  INTERNAL_SYSCALL_CALL (rt_sigprocmask, SIG_SETMASK, &ss, NULL, _NSIG / 8);
+  INTERNAL_SYSCALL_CALL (rt_sigprocmask, SIG_SETMASK, &ss, NULL,
+			 __NSIG_BYTES);
 }
 
 extern inline int
@@ -52,12 +53,14 @@ __aio_create_helper_thread (pthread_t *threadp, void *(*tf) (void *),
   sigset_t ss;
   sigset_t oss;
   sigfillset (&ss);
-  INTERNAL_SYSCALL_CALL (rt_sigprocmask, SIG_SETMASK, &ss, &oss, _NSIG / 8);
+  INTERNAL_SYSCALL_CALL (rt_sigprocmask, SIG_SETMASK, &ss, &oss,
+			 __NSIG_BYTES);
 
   int ret = pthread_create (threadp, &attr, tf, arg);
 
   /* Restore the signal mask.  */
-  INTERNAL_SYSCALL_CALL (rt_sigprocmask, SIG_SETMASK, &oss, NULL, _NSIG / 8);
+  INTERNAL_SYSCALL_CALL (rt_sigprocmask, SIG_SETMASK, &oss, NULL,
+			 __NSIG_BYTES);
 
   (void) pthread_attr_destroy (&attr);
   return ret;
diff --git a/sysdeps/unix/sysv/linux/epoll_pwait.c b/sysdeps/unix/sysv/linux/epoll_pwait.c
index 66f04482c7..af6d0fd713 100644
--- a/sysdeps/unix/sysv/linux/epoll_pwait.c
+++ b/sysdeps/unix/sysv/linux/epoll_pwait.c
@@ -38,6 +38,6 @@ int epoll_pwait (int epfd, struct epoll_event *events,
 		 const sigset_t *set)
 {
   return SYSCALL_CANCEL (epoll_pwait, epfd, events, maxevents,
-			 timeout, set, _NSIG / 8);
+			 timeout, set, __NSIG_BYTES);
 }
 libc_hidden_def (epoll_pwait)
diff --git a/sysdeps/unix/sysv/linux/internal-signals.h b/sysdeps/unix/sysv/linux/internal-signals.h
index 3fbd4807d1..35f2de04c5 100644
--- a/sysdeps/unix/sysv/linux/internal-signals.h
+++ b/sysdeps/unix/sysv/linux/internal-signals.h
@@ -68,7 +68,7 @@ static inline void
 __libc_signal_block_all (sigset_t *set)
 {
   INTERNAL_SYSCALL_CALL (rt_sigprocmask, SIG_BLOCK, &sigall_set, set,
-			 _NSIG / 8);
+			 __NSIG_BYTES);
 }
 
 /* Block all application signals (excluding internal glibc ones).  */
@@ -78,7 +78,7 @@ __libc_signal_block_app (sigset_t *set)
   sigset_t allset = sigall_set;
   __clear_internal_signals (&allset);
   INTERNAL_SYSCALL_CALL (rt_sigprocmask, SIG_BLOCK, &allset, set,
-			 _NSIG / 8);
+			 __NSIG_BYTES);
 }
 
 /* Block only SIGTIMER and return the previous set on SET.  */
@@ -86,7 +86,7 @@ static inline void
 __libc_signal_block_sigtimer (sigset_t *set)
 {
   INTERNAL_SYSCALL_CALL (rt_sigprocmask, SIG_BLOCK, &sigtimer_set, set,
-			 _NSIG / 8);
+			 __NSIG_BYTES);
 }
 
 /* Unblock only SIGTIMER and return the previous set on SET.  */
@@ -94,7 +94,7 @@ static inline void
 __libc_signal_unblock_sigtimer (sigset_t *set)
 {
   INTERNAL_SYSCALL_CALL (rt_sigprocmask, SIG_UNBLOCK, &sigtimer_set, set,
-			 _NSIG / 8);
+			 __NSIG_BYTES);
 }
 
 /* Restore current process signal mask.  */
@@ -102,7 +102,7 @@ static inline void
 __libc_signal_restore_set (const sigset_t *set)
 {
   INTERNAL_SYSCALL_CALL (rt_sigprocmask, SIG_SETMASK, set, NULL,
-			 _NSIG / 8);
+			 __NSIG_BYTES);
 }
 
 /* Used to communicate with signal handler.  */
diff --git a/sysdeps/unix/sysv/linux/ppoll.c b/sysdeps/unix/sysv/linux/ppoll.c
index 4ffb23710e..0f15636cce 100644
--- a/sysdeps/unix/sysv/linux/ppoll.c
+++ b/sysdeps/unix/sysv/linux/ppoll.c
@@ -41,11 +41,12 @@ __ppoll64 (struct pollfd *fds, nfds_t nfds, const struct __timespec64 *timeout,
 # ifndef __NR_ppoll_time64
 #  define __NR_ppoll_time64 __NR_ppoll
 # endif
-  return SYSCALL_CANCEL (ppoll_time64, fds, nfds, timeout, sigmask, _NSIG / 8);
+  return SYSCALL_CANCEL (ppoll_time64, fds, nfds, timeout, sigmask,
+			 __NSIG_BYTES);
 #else
 # ifdef __NR_ppoll_time64
   int ret = SYSCALL_CANCEL (ppoll_time64, fds, nfds, timeout, sigmask,
-                            _NSIG / 8);
+                            __NSIG_BYTES);
   if (ret >= 0 || errno != ENOSYS)
     return ret;
 # endif
@@ -62,7 +63,7 @@ __ppoll64 (struct pollfd *fds, nfds_t nfds, const struct __timespec64 *timeout,
     }
 
   return SYSCALL_CANCEL (ppoll, fds, nfds, timeout ? &ts32 : NULL, sigmask,
-                         _NSIG / 8);
+                         __NSIG_BYTES);
 #endif
 }
 
diff --git a/sysdeps/unix/sysv/linux/pselect.c b/sysdeps/unix/sysv/linux/pselect.c
index d7c6ff8fdb..304db03338 100644
--- a/sysdeps/unix/sysv/linux/pselect.c
+++ b/sysdeps/unix/sysv/linux/pselect.c
@@ -43,7 +43,7 @@ __pselect (int nfds, fd_set *readfds, fd_set *writefds, fd_set *exceptfds,
   } data;
 
   data.ss = (__syscall_ulong_t) (uintptr_t) sigmask;
-  data.ss_len = _NSIG / 8;
+  data.ss_len = __NSIG_BYTES;
 
   return SYSCALL_CANCEL (pselect6, nfds, readfds, writefds, exceptfds,
                          timeout, &data);
diff --git a/sysdeps/unix/sysv/linux/sigaction.c b/sysdeps/unix/sysv/linux/sigaction.c
index 4e6d11a6ae..f27349d552 100644
--- a/sysdeps/unix/sysv/linux/sigaction.c
+++ b/sysdeps/unix/sysv/linux/sigaction.c
@@ -57,7 +57,8 @@ __libc_sigaction (int sig, const struct sigaction *act, struct sigaction *oact)
      real size of the user-level sigset_t.  */
   result = INLINE_SYSCALL_CALL (rt_sigaction, sig,
 				act ? &kact : NULL,
-				oact ? &koact : NULL, STUB (act, _NSIG / 8));
+				oact ? &koact : NULL, STUB (act,
+							    __NSIG_BYTES));
 
   if (oact && result >= 0)
     {
diff --git a/sysdeps/unix/sysv/linux/signalfd.c b/sysdeps/unix/sysv/linux/signalfd.c
index 64d7bccba9..71d91fdde5 100644
--- a/sysdeps/unix/sysv/linux/signalfd.c
+++ b/sysdeps/unix/sysv/linux/signalfd.c
@@ -24,5 +24,5 @@
 int
 signalfd (int fd, const sigset_t *mask, int flags)
 {
-  return INLINE_SYSCALL (signalfd4, 4, fd, mask, _NSIG / 8, flags);
+  return INLINE_SYSCALL (signalfd4, 4, fd, mask, __NSIG_BYTES, flags);
 }
diff --git a/sysdeps/unix/sysv/linux/sigpending.c b/sysdeps/unix/sysv/linux/sigpending.c
index 458a3cf99e..8898fe8b34 100644
--- a/sysdeps/unix/sysv/linux/sigpending.c
+++ b/sysdeps/unix/sysv/linux/sigpending.c
@@ -24,5 +24,5 @@
 int
 sigpending (sigset_t *set)
 {
-  return INLINE_SYSCALL (rt_sigpending, 2, set, _NSIG / 8);
+  return INLINE_SYSCALL_CALL (rt_sigpending, set, __NSIG_BYTES);
 }
diff --git a/sysdeps/unix/sysv/linux/sigsetops.h b/sysdeps/unix/sysv/linux/sigsetops.h
index db8f378cf0..3f29ead009 100644
--- a/sysdeps/unix/sysv/linux/sigsetops.h
+++ b/sysdeps/unix/sysv/linux/sigsetops.h
@@ -20,23 +20,31 @@
 #define _SIGSETOPS_H 1
 
 #include <signal.h>
+#include <limits.h>
+#include <libc-pointer-arith.h>
 
 /* Return a mask that includes the bit for SIG only.  */
-# define __sigmask(sig) \
-  (((unsigned long int) 1) << (((sig) - 1) % (8 * sizeof (unsigned long int))))
+#define __sigmask(sig) \
+  (1UL << (((sig) - 1) % ULONG_WIDTH))
 
 /* Return the word index for SIG.  */
 static inline unsigned long int
 __sigword (int sig)
 {
-  return (sig - 1) / (8 * sizeof (unsigned long int));
+  return (sig - 1) / ULONG_WIDTH;
 }
 
 /* Linux sig* functions only handle up to __NSIG_WORDS words instead of
    full _SIGSET_NWORDS sigset size.  The signal numbers are 1-based, and
    bit 0 of a signal mask is for signal 1.  */
-
-# define __NSIG_WORDS (_NSIG / (8 * sizeof (unsigned long int )))
+#define __NSIG_WORDS (ALIGN_UP ((_NSIG - 1), ULONG_WIDTH) / ULONG_WIDTH)
+_Static_assert (__NSIG_WORDS <= _SIGSET_NWORDS,
+		"__NSIG_WORDS > _SIGSET_WORDS");
+
+/* This macro is used on syscall that takes a sigset_t to specify the expected
+   size in bytes.  As for glibc, kernel sigset is implemented as an array of
+   unsigned long.  */
+#define __NSIG_BYTES (__NSIG_WORDS * (ULONG_WIDTH / UCHAR_WIDTH))
 
 static inline void
 __sigemptyset (sigset_t *set)
diff --git a/sysdeps/unix/sysv/linux/sigsuspend.c b/sysdeps/unix/sysv/linux/sigsuspend.c
index dd5df5af25..b4bf2ec4bc 100644
--- a/sysdeps/unix/sysv/linux/sigsuspend.c
+++ b/sysdeps/unix/sysv/linux/sigsuspend.c
@@ -23,7 +23,7 @@
 int
 __sigsuspend (const sigset_t *set)
 {
-  return SYSCALL_CANCEL (rt_sigsuspend, set, _NSIG / 8);
+  return SYSCALL_CANCEL (rt_sigsuspend, set, __NSIG_BYTES);
 }
 libc_hidden_def (__sigsuspend)
 weak_alias (__sigsuspend, sigsuspend)
diff --git a/sysdeps/unix/sysv/linux/sigtimedwait.c b/sysdeps/unix/sysv/linux/sigtimedwait.c
index 6b3d8f705f..f2ef3aad45 100644
--- a/sysdeps/unix/sysv/linux/sigtimedwait.c
+++ b/sysdeps/unix/sysv/linux/sigtimedwait.c
@@ -26,7 +26,8 @@ __sigtimedwait (const sigset_t *set, siginfo_t *info,
 {
   /* XXX The size argument hopefully will have to be changed to the
      real size of the user-level sigset_t.  */
-  int result = SYSCALL_CANCEL (rt_sigtimedwait, set, info, timeout, _NSIG / 8);
+  int result = SYSCALL_CANCEL (rt_sigtimedwait, set, info, timeout,
+			       __NSIG_BYTES);
 
   /* The kernel generates a SI_TKILL code in si_code in case tkill is
      used.  tkill is transparently used in raise().  Since having
diff --git a/sysdeps/unix/sysv/linux/x86/setjmpP.h b/sysdeps/unix/sysv/linux/x86/setjmpP.h
index 1783b8eb78..a5de31bfd6 100644
--- a/sysdeps/unix/sysv/linux/x86/setjmpP.h
+++ b/sysdeps/unix/sysv/linux/x86/setjmpP.h
@@ -21,6 +21,7 @@
 
 #include <bits/types/__sigset_t.h>
 #include <libc-pointer-arith.h>
+#include <sigsetops.h>
 
 /* <setjmp/setjmp.h> has
 
@@ -113,11 +114,9 @@ typedef union
 
 #include <signal.h>
 
-#define _SIGPROCMASK_NSIG_WORDS (_NSIG / (8 * sizeof (unsigned long int)))
-
 typedef struct
   {
-    unsigned long int __val[_SIGPROCMASK_NSIG_WORDS];
+    unsigned long int __val[__NSIG_WORDS];
   } __sigprocmask_sigset_t;
 
 extern jmp_buf ___buf;
-- 
2.17.1


^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [PATCH 2/3] mips: Fix SIGRTMAX definition
  2020-04-23 19:26 ` [PATCH 2/3] mips: Fix SIGRTMAX definition Adhemerval Zanella
@ 2020-04-23 20:41   ` Joseph Myers
  2020-04-23 21:47     ` Adhemerval Zanella
  0 siblings, 1 reply; 5+ messages in thread
From: Joseph Myers @ 2020-04-23 20:41 UTC (permalink / raw)
  To: Adhemerval Zanella; +Cc: libc-alpha

On Thu, 23 Apr 2020, Adhemerval Zanella via Libc-alpha wrote:

> MIPS support up to 96 real time signal, instead of current 95.  This
> increases the NSIG value, however it does not incur in a compat
> issue for older programs (which won't access the new element).
> The sys_siglist is automatically expanded as well.

The fact that you're changing ABI test baselines for existing symbol 
versions demonstrates that this is not a safe change (you can't change the 
size of exported data symbols without adding a new symbol version because 
of issues with copy relocations - this is what the "Symbol `%s' has 
different size in shared object, consider re-linking" message from the 
dynamic linker is about).

We have the #errlist-compat mechanism in Versions files for having 
different symbol versions for differently-sized versions of sys_errlist.  
It looks like sys_siglist has a simpler system involving OLD_SIGLIST_SIZE, 
OLD2_SIGLIST_SIZE and hardcoded version conditionals in 
sysdeps/gnu/siglist.c.  To make this change, you'll need to add some kind 
of support for having three compat versions for these symbols (so four 
versions for them in total), with different sizes, so that existing 
versions keep their existing sizes.

It will also be necessary to update 
sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist for such a new 
version in addition to the three ABI baselines changed in this patch.

-- 
Joseph S. Myers
joseph@codesourcery.com

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [PATCH 2/3] mips: Fix SIGRTMAX definition
  2020-04-23 20:41   ` Joseph Myers
@ 2020-04-23 21:47     ` Adhemerval Zanella
  0 siblings, 0 replies; 5+ messages in thread
From: Adhemerval Zanella @ 2020-04-23 21:47 UTC (permalink / raw)
  To: Joseph Myers; +Cc: libc-alpha



On 23/04/2020 17:41, Joseph Myers wrote:
> On Thu, 23 Apr 2020, Adhemerval Zanella via Libc-alpha wrote:
> 
>> MIPS support up to 96 real time signal, instead of current 95.  This
>> increases the NSIG value, however it does not incur in a compat
>> issue for older programs (which won't access the new element).
>> The sys_siglist is automatically expanded as well.
> 
> The fact that you're changing ABI test baselines for existing symbol 
> versions demonstrates that this is not a safe change (you can't change the 
> size of exported data symbols without adding a new symbol version because 
> of issues with copy relocations - this is what the "Symbol `%s' has 
> different size in shared object, consider re-linking" message from the 
> dynamic linker is about).

Indeed, I forgot about copy relocations and that it is possible to link
new applications against sys_errlist.

> 
> We have the #errlist-compat mechanism in Versions files for having 
> different symbol versions for differently-sized versions of sys_errlist.  
> It looks like sys_siglist has a simpler system involving OLD_SIGLIST_SIZE, 
> OLD2_SIGLIST_SIZE and hardcoded version conditionals in 
> sysdeps/gnu/siglist.c.  To make this change, you'll need to add some kind 
> of support for having three compat versions for these symbols (so four 
> versions for them in total), with different sizes, so that existing 
> versions keep their existing sizes.

Ack, I will update the patch.

> 
> It will also be necessary to update 
> sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist for such a new 
> version in addition to the three ABI baselines changed in this patch.
> 

Ack.

^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2020-04-23 21:47 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-04-23 19:26 [PATCH 1/3] signal: Add signum-{generic,arch}.h Adhemerval Zanella
2020-04-23 19:26 ` [PATCH 2/3] mips: Fix SIGRTMAX definition Adhemerval Zanella
2020-04-23 20:41   ` Joseph Myers
2020-04-23 21:47     ` Adhemerval Zanella
2020-04-23 19:26 ` [PATCH 3/3] linux: Fix __NSIG_WORDS and add __NSIG_BYTES Adhemerval Zanella

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).