[PATCH v5 01/13] signal: Add signum-{generic,arch}.h
Carlos O'Donell
carlos@redhat.com
Thu Jul 2 18:26:30 GMT 2020
On 6/19/20 9:43 AM, Adhemerval Zanella wrote:
> 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 values 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.
I agree that starting with a common definition and then adding to that
results in fewer mistakes. There is no case where the common definition
got updated and the arch then forgot to undef the non-default.
I agree that having a single signum-arch.h for new generic ports is a
good idea and makes porting easier.
In general we've been following the generic concept that we start with
smaller headers and build up to more complex headers.
Therefore on the fact of it this refactor looks like an improvement so
I'm going to agree with it, given that you did the work and subsequent
patches follow on from this patch, and *those* patches have even more
value.
OK for master.
Reviewed-by: Carlos O'Donell <carlos@redhat.com>
> ---
> bits/signum-arch.h | 59 +++++++++++++++
> bits/signum-generic.h | 27 +------
> 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 --------------
> .../unix/sysv/linux/hppa/bits/signum-arch.h | 69 +++++++++++++++++
> sysdeps/unix/sysv/linux/hppa/bits/signum.h | 75 -------------------
> sysdeps/unix/sysv/linux/ia64/vfork.S | 2 +-
> .../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 ----------
> 18 files changed, 461 insertions(+), 374 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
> create mode 100644 sysdeps/unix/sysv/linux/hppa/bits/signum-arch.h
> delete mode 100644 sysdeps/unix/sysv/linux/hppa/bits/signum.h
> 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..abecff2345
> --- /dev/null
> +++ b/bits/signum-arch.h
> @@ -0,0 +1,59 @@
> +/* Signal number constants. Specific architecture definitions.
> + Copyright (C) 2020 Free Software Foundation, Inc.
OK.
> + 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
OK.
> +
> +#endif
> diff --git a/bits/signum-generic.h b/bits/signum-generic.h
> index 504e5fb8c8..67131853c2 100644
> --- a/bits/signum-generic.h
> +++ b/bits/signum-generic.h
> @@ -57,31 +57,9 @@
> #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. */
> @@ -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>
OK.
>
> /* 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. */
OK.
> 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 \
OK.
> 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 2c57f90e20..db325bde16 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>
OK.
>
> #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..bfcb37a47c
> --- /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.
OK.
> + 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
OK.
> +
> +#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. */
OK.
> 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..47200d7337
> --- /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_ARCH_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. */
OK.
> 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. */
OK.
> 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..de5ee4af14
> --- /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_ARCH_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. */
OK.
> 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. */
OK.
> diff --git a/sysdeps/unix/sysv/linux/hppa/bits/signum-arch.h b/sysdeps/unix/sysv/linux/hppa/bits/signum-arch.h
> new file mode 100644
> index 0000000000..364e57ec4a
> --- /dev/null
> +++ b/sysdeps/unix/sysv/linux/hppa/bits/signum-arch.h
> @@ -0,0 +1,69 @@
> +/* Signal number definitions. Linux/HPPA 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_ARCH_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/HPPA. These values were originally chosen for HP/UX
> + compatibility, but were renumbered as of kernel 3.17 and glibc 2.21
> + to accommodate software (notably systemd) that assumed at least 29
> + real-time signal numbers would be available. SIGEMT and SIGLOST
> + were removed, and the values of SIGSTKFLT, SIGXCPU, XIGXFSZ, and
> + SIGSYS were changed, enabling __SIGRTMIN to be 32. */
> +
> +#define SIGSTKFLT 7 /* Stack fault (obsolete). */
> +#define SIGPWR 19 /* Power failure imminent. */
> +
> +/* 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 */
> +
> +#define __SIGRTMIN 32
> +#define __SIGRTMAX 64
> +
> +#endif /* <signal.h> included. */
OK.
> diff --git a/sysdeps/unix/sysv/linux/hppa/bits/signum.h b/sysdeps/unix/sysv/linux/hppa/bits/signum.h
> deleted file mode 100644
> index 2210304e37..0000000000
> --- a/sysdeps/unix/sysv/linux/hppa/bits/signum.h
> +++ /dev/null
> @@ -1,75 +0,0 @@
> -/* Signal number definitions. Linux/HPPA 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/HPPA. These values were originally chosen for HP/UX
> - compatibility, but were renumbered as of kernel 3.17 and glibc 2.21
> - to accommodate software (notably systemd) that assumed at least 29
> - real-time signal numbers would be available. SIGEMT and SIGLOST
> - were removed, and the values of SIGSTKFLT, SIGXCPU, XIGXFSZ, and
> - SIGSYS were changed, enabling __SIGRTMIN to be 32. */
> -
> -#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
> -
> -#undef __SIGRTMAX
> -#define __SIGRTMAX 64
> -
> -#endif /* <signal.h> included. */
OK.
> diff --git a/sysdeps/unix/sysv/linux/ia64/vfork.S b/sysdeps/unix/sysv/linux/ia64/vfork.S
> index a8ceea8ea7..843bf7683c 100644
> --- a/sysdeps/unix/sysv/linux/ia64/vfork.S
> +++ b/sysdeps/unix/sysv/linux/ia64/vfork.S
> @@ -18,7 +18,7 @@
>
> #include <sysdep.h>
> #define _SIGNAL_H
> -#include <bits/signum.h>
> +#include <bits/signum-arch.h>
OK.
> #include <tcb-offsets.h>
>
> /* The following are defined in linux/sched.h, which unfortunately */
> 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..c500d38322
> --- /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. */
OK.
> 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. */
OK.
> 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..0cece9a6c4
> --- /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_ARCH_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. */
OK.
> 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. */
>
OK.
--
Cheers,
Carlos.
More information about the Libc-alpha
mailing list