[PATCH v2 1/5] signal: Add signum-{generic,arch}.h
Carlos O'Donell
carlos@redhat.com
Tue May 12 17:36:08 GMT 2020
On 5/7/20 10:23 AM, Adhemerval Zanella via Libc-alpha wrote:
> Changes from previous version:
>
> - Fixed with tab vs. space after #define consistency.
I'm reviewing.
In the meantime testing on 64-bit and 32-bit x86 was clean.
Tesetd-by: Carlos O'Donell <carlos@redhat.com>
> --
>
> 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.
> ---
> 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.
> + 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..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>
>
> /* 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..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.
> + 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..e3aef44e78
> --- /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..e21dc332ca
> --- /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-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. */
> 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. */
> 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>
> #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. */
> 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..a19b5100cb
> --- /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. */
>
--
Cheers,
Carlos.
More information about the Libc-alpha
mailing list