diff options
37 files changed, 306 insertions, 219 deletions
@@ -1,3 +1,75 @@ +2017-05-19 Joseph Myers <joseph@codesourcery.com> + + * bits/ss_flags.h: New file. + * bits/types/stack_t.h: Likewise. + * include/bits/types/struct_sigstack.h: Likewise. + * signal/bits/types/struct_sigstack.h: Likewise. + * sysdeps/unix/sysv/linux/bits/ss_flags.h: Likewise. + * sysdeps/unix/sysv/linux/bits/types/stack_t.h: Likewise. + * sysdeps/unix/sysv/linux/mips/bits/types/stack_t.h: Likewise. + * signal/Makefile (headers): Add bits/types/struct_sigstack.h, + bits/types/stack_t.h and bits/ss_flags.h. + * signal/signal.h [__USE_XOPEN_EXTENDED || __USE_XOPEN2K8]: + Include <bits/types/struct_sigstack.h>, <bits/types/stack_t.h> and + <bits/ss_flags.h>. + * bits/sigstack.h (struct sigstack): Remove. + (stack_t): Likewise. + (SS_ONSTACK): Likewise. + (SS_DISABLE): Likewise. + * sysdeps/unix/sysv/linux/aarch64/bits/sigstack.h + (struct sigstack): Likewise. + (stack_t): Likewise. + (SS_ONSTACK): Likewise. + (SS_DISABLE): Likewise. + * sysdeps/unix/sysv/linux/alpha/bits/sigstack.h (struct sigstack): + Likewise. + (stack_t): Likewise. + (SS_ONSTACK): Likewise. + (SS_DISABLE): Likewise. + * sysdeps/unix/sysv/linux/bits/sigstack.h (struct sigstack): + Likewise. + (stack_t): Likewise. + (SS_ONSTACK): Likewise. + (SS_DISABLE): Likewise. + * sysdeps/unix/sysv/linux/mips/bits/sigstack.h: Likewise. + * sysdeps/unix/sysv/linux/ia64/bits/sigstack.h (struct sigstack): + Likewise. + (stack_t): Likewise. + (SS_ONSTACK): Likewise. + (SS_DISABLE): Likewise. + * sysdeps/unix/sysv/linux/powerpc/bits/sigstack.h + (struct sigstack): Likewise. + (stack_t): Likewise. + (SS_ONSTACK): Likewise. + (SS_DISABLE): Likewise. + * sysdeps/unix/sysv/linux/sparc/bits/sigstack.h (struct sigstack): + Likewise. + (stack_t): Likewise. + (SS_ONSTACK): Likewise. + (SS_DISABLE): Likewise. + * sysdeps/arm/sys/ucontext.h: Include + <bits/types/struct_sigstack.h>, <bits/types/stack_t.h> and + <bits/ss_flags.h>. + * sysdeps/generic/sys/ucontext.h: Likewise. + * sysdeps/i386/sys/ucontext.h: Likewise. + * sysdeps/m68k/sys/ucontext.h: Likewise. + * sysdeps/mips/sys/ucontext.h: Likewise. + * sysdeps/unix/sysv/linux/aarch64/sys/ucontext.h: Likewise. + * sysdeps/unix/sysv/linux/alpha/sys/ucontext.h: Likewise. + * sysdeps/unix/sysv/linux/arm/sys/ucontext.h: Likewise. + * sysdeps/unix/sysv/linux/hppa/sys/ucontext.h: Likewise. + * sysdeps/unix/sysv/linux/ia64/bits/sigcontext.h: Likewise. + * sysdeps/unix/sysv/linux/ia64/sys/ucontext.h: Likewise. + * sysdeps/unix/sysv/linux/m68k/sys/ucontext.h: Likewise. + * sysdeps/unix/sysv/linux/mips/sys/ucontext.h: Likewise. + * sysdeps/unix/sysv/linux/nios2/sys/ucontext.h: Likewise. + * sysdeps/unix/sysv/linux/powerpc/sys/ucontext.h: Likewise. + * sysdeps/unix/sysv/linux/s390/sys/ucontext.h: Likewise. + * sysdeps/unix/sysv/linux/sh/sys/ucontext.h: Likewise. + * sysdeps/unix/sysv/linux/sparc/sys/ucontext.h: Likewise. + * sysdeps/unix/sysv/linux/tile/sys/ucontext.h: Likewise. + * sysdeps/unix/sysv/linux/x86/sys/ucontext.h: Likewise. + 2017-05-19 H.J. Lu <hongjiu.lu@intel.com> * sysdeps/i386/i686/multiarch/memchr-sse2.S (MEMCHR): Use diff --git a/bits/sigstack.h b/bits/sigstack.h index 42143e363a..3127c325e5 100644 --- a/bits/sigstack.h +++ b/bits/sigstack.h @@ -23,33 +23,6 @@ # error "Never include this file directly. Use <signal.h> instead" #endif - -/* Structure describing a signal stack (obsolete). */ -struct sigstack - { - __ptr_t ss_sp; /* Signal stack pointer. */ - int ss_onstack; /* Nonzero if executing on this stack. */ - }; - - -/* Alternate, preferred interface. */ -typedef struct sigaltstack - { - __ptr_t ss_sp; - size_t ss_size; - int ss_flags; - } stack_t; - - -/* Possible values for `ss_flags.'. */ -enum -{ - SS_ONSTACK = 0x0001, -#define SS_ONSTACK SS_ONSTACK - SS_DISABLE = 0x0004 -#define SS_DISABLE SS_DISABLE -}; - /* Minumum stack size for a signal handler. */ #define MINSIGSTKSZ 8192 diff --git a/bits/ss_flags.h b/bits/ss_flags.h new file mode 100644 index 0000000000..fa3836c122 --- /dev/null +++ b/bits/ss_flags.h @@ -0,0 +1,35 @@ +/* ss_flags values for stack_t. + Copyright (C) 1998-2017 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 + <http://www.gnu.org/licenses/>. */ + +#ifndef _BITS_SS_FLAGS_H +#define _BITS_SS_FLAGS_H 1 + +#if !defined _SIGNAL_H && !defined _SYS_UCONTEXT_H +# error "Never include this file directly. Use <signal.h> instead" +#endif + +/* Possible values for `ss_flags.'. */ +enum +{ + SS_ONSTACK = 0x0001, +#define SS_ONSTACK SS_ONSTACK + SS_DISABLE = 0x0004 +#define SS_DISABLE SS_DISABLE +}; + +#endif /* bits/ss_flags.h */ diff --git a/bits/types/stack_t.h b/bits/types/stack_t.h new file mode 100644 index 0000000000..3cf0a4019a --- /dev/null +++ b/bits/types/stack_t.h @@ -0,0 +1,33 @@ +/* Define stack_t. + Copyright (C) 1998-2017 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 + <http://www.gnu.org/licenses/>. */ + +#ifndef __stack_t_defined +#define __stack_t_defined 1 + +#define __need_size_t +#include <stddef.h> + +/* Structure describing a signal stack. */ +typedef struct sigaltstack + { + void *ss_sp; + size_t ss_size; + int ss_flags; + } stack_t; + +#endif diff --git a/include/bits/types/struct_sigstack.h b/include/bits/types/struct_sigstack.h new file mode 100644 index 0000000000..05f1ee55b7 --- /dev/null +++ b/include/bits/types/struct_sigstack.h @@ -0,0 +1 @@ +#include "../../signal/bits/types/struct_sigstack.h" diff --git a/signal/Makefile b/signal/Makefile index b65bf6b408..077aaea6ad 100644 --- a/signal/Makefile +++ b/signal/Makefile @@ -24,7 +24,8 @@ include ../Makeconfig headers := signal.h sys/signal.h bits/signum.h bits/sigcontext.h \ bits/sigaction.h bits/sigset.h bits/siginfo.h bits/sigstack.h \ - bits/sigthread.h + bits/sigthread.h bits/types/struct_sigstack.h bits/types/stack_t.h \ + bits/ss_flags.h routines := signal raise killpg \ sigaction sigprocmask kill \ diff --git a/signal/bits/types/struct_sigstack.h b/signal/bits/types/struct_sigstack.h new file mode 100644 index 0000000000..5e93ce0091 --- /dev/null +++ b/signal/bits/types/struct_sigstack.h @@ -0,0 +1,29 @@ +/* Define struct sigstack. + Copyright (C) 1998-2017 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 + <http://www.gnu.org/licenses/>. */ + +#ifndef __sigstack_defined +#define __sigstack_defined 1 + +/* Structure describing a signal stack (obsolete). */ +struct sigstack + { + void *ss_sp; /* Signal stack pointer. */ + int ss_onstack; /* Nonzero if executing on this stack. */ + }; + +#endif diff --git a/signal/signal.h b/signal/signal.h index 6db2d2f100..d01df3290a 100644 --- a/signal/signal.h +++ b/signal/signal.h @@ -314,6 +314,9 @@ extern int sigreturn (struct sigcontext *__scp) __THROW; extern int siginterrupt (int __sig, int __interrupt) __THROW; # include <bits/sigstack.h> +# include <bits/types/struct_sigstack.h> +# include <bits/types/stack_t.h> +# include <bits/ss_flags.h> # if defined __USE_XOPEN || defined __USE_XOPEN2K8 /* This will define `ucontext_t' and `mcontext_t'. */ # include <sys/ucontext.h> diff --git a/sysdeps/arm/sys/ucontext.h b/sysdeps/arm/sys/ucontext.h index 09fe418b3c..49d60395dd 100644 --- a/sysdeps/arm/sys/ucontext.h +++ b/sysdeps/arm/sys/ucontext.h @@ -27,6 +27,9 @@ by <signal.h>. */ #include <bits/sigcontext.h> #include <bits/sigstack.h> +#include <bits/types/struct_sigstack.h> +#include <bits/types/stack_t.h> +#include <bits/ss_flags.h> typedef int greg_t; diff --git a/sysdeps/generic/sys/ucontext.h b/sysdeps/generic/sys/ucontext.h index 6c475b5a4a..052c5401cb 100644 --- a/sysdeps/generic/sys/ucontext.h +++ b/sysdeps/generic/sys/ucontext.h @@ -29,6 +29,9 @@ by <signal.h>. */ #include <bits/sigcontext.h> #include <bits/sigstack.h> +#include <bits/types/struct_sigstack.h> +#include <bits/types/stack_t.h> +#include <bits/ss_flags.h> typedef struct sigcontext mcontext_t; diff --git a/sysdeps/i386/sys/ucontext.h b/sysdeps/i386/sys/ucontext.h index c632e50eba..241f270a99 100644 --- a/sysdeps/i386/sys/ucontext.h +++ b/sysdeps/i386/sys/ucontext.h @@ -27,6 +27,9 @@ by <signal.h>. */ #include <bits/sigcontext.h> #include <bits/sigstack.h> +#include <bits/types/struct_sigstack.h> +#include <bits/types/stack_t.h> +#include <bits/ss_flags.h> /* Type for general register. */ diff --git a/sysdeps/m68k/sys/ucontext.h b/sysdeps/m68k/sys/ucontext.h index cbec1db5d6..4e5ec3b090 100644 --- a/sysdeps/m68k/sys/ucontext.h +++ b/sysdeps/m68k/sys/ucontext.h @@ -27,6 +27,9 @@ by <signal.h>. */ #include <bits/sigcontext.h> #include <bits/sigstack.h> +#include <bits/types/struct_sigstack.h> +#include <bits/types/stack_t.h> +#include <bits/ss_flags.h> /* Type for general register. */ diff --git a/sysdeps/mips/sys/ucontext.h b/sysdeps/mips/sys/ucontext.h index 137246f961..cb8fbcd3d2 100644 --- a/sysdeps/mips/sys/ucontext.h +++ b/sysdeps/mips/sys/ucontext.h @@ -27,6 +27,9 @@ by <signal.h>. */ #include <bits/sigcontext.h> #include <bits/sigstack.h> +#include <bits/types/struct_sigstack.h> +#include <bits/types/stack_t.h> +#include <bits/ss_flags.h> #include <sgidefs.h> diff --git a/sysdeps/unix/sysv/linux/aarch64/bits/sigstack.h b/sysdeps/unix/sysv/linux/aarch64/bits/sigstack.h index a1f2accfaa..434b24e926 100644 --- a/sysdeps/unix/sysv/linux/aarch64/bits/sigstack.h +++ b/sysdeps/unix/sysv/linux/aarch64/bits/sigstack.h @@ -23,33 +23,6 @@ # error "Never include this file directly. Use <signal.h> instead" #endif -#define __need_size_t -#include <stddef.h> - -/* Structure describing a signal stack (obsolete). */ -struct sigstack - { - void *ss_sp; /* Signal stack pointer. */ - int ss_onstack; /* Nonzero if executing on this stack. */ - }; - -/* Alternate, preferred interface. */ -typedef struct sigaltstack - { - void *ss_sp; - int ss_flags; - size_t ss_size; - } stack_t; - -/* Possible values for `ss_flags'. */ -enum -{ - SS_ONSTACK = 1, -#define SS_ONSTACK SS_ONSTACK - SS_DISABLE -#define SS_DISABLE SS_DISABLE -}; - /* Minimum stack size for a signal handler. */ #define MINSIGSTKSZ 5120 diff --git a/sysdeps/unix/sysv/linux/aarch64/sys/ucontext.h b/sysdeps/unix/sysv/linux/aarch64/sys/ucontext.h index 536404dd71..1a5fa29ce8 100644 --- a/sysdeps/unix/sysv/linux/aarch64/sys/ucontext.h +++ b/sysdeps/unix/sysv/linux/aarch64/sys/ucontext.h @@ -28,6 +28,9 @@ by <signal.h>. */ #include <bits/sigcontext.h> #include <bits/sigstack.h> +#include <bits/types/struct_sigstack.h> +#include <bits/types/stack_t.h> +#include <bits/ss_flags.h> #ifdef __USE_MISC # include <sys/procfs.h> diff --git a/sysdeps/unix/sysv/linux/alpha/bits/sigstack.h b/sysdeps/unix/sysv/linux/alpha/bits/sigstack.h index bba02126b1..9a30c9d9d5 100644 --- a/sysdeps/unix/sysv/linux/alpha/bits/sigstack.h +++ b/sysdeps/unix/sysv/linux/alpha/bits/sigstack.h @@ -23,33 +23,6 @@ # error "Never include this file directly. Use <signal.h> instead" #endif -#define __need_size_t -#include <stddef.h> - -/* Structure describing a signal stack (obsolete). */ -struct sigstack - { - __ptr_t ss_sp; /* Signal stack pointer. */ - int ss_onstack; /* Nonzero if executing on this stack. */ - }; - -/* Alternate, preferred interface. */ -typedef struct sigaltstack - { - __ptr_t ss_sp; - int ss_flags; - size_t ss_size; - } stack_t; - -/* Possible values for `ss_flags'. */ -enum -{ - SS_ONSTACK = 1, -#define SS_ONSTACK SS_ONSTACK - SS_DISABLE -#define SS_DISABLE SS_DISABLE -}; - |
