aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog72
-rw-r--r--bits/sigstack.h27
-rw-r--r--bits/ss_flags.h35
-rw-r--r--bits/types/stack_t.h33
-rw-r--r--include/bits/types/struct_sigstack.h1
-rw-r--r--signal/Makefile3
-rw-r--r--signal/bits/types/struct_sigstack.h29
-rw-r--r--signal/signal.h3
-rw-r--r--sysdeps/arm/sys/ucontext.h3
-rw-r--r--sysdeps/generic/sys/ucontext.h3
-rw-r--r--sysdeps/i386/sys/ucontext.h3
-rw-r--r--sysdeps/m68k/sys/ucontext.h3
-rw-r--r--sysdeps/mips/sys/ucontext.h3
-rw-r--r--sysdeps/unix/sysv/linux/aarch64/bits/sigstack.h27
-rw-r--r--sysdeps/unix/sysv/linux/aarch64/sys/ucontext.h3
-rw-r--r--sysdeps/unix/sysv/linux/alpha/bits/sigstack.h27
-rw-r--r--sysdeps/unix/sysv/linux/alpha/sys/ucontext.h3
-rw-r--r--sysdeps/unix/sysv/linux/arm/sys/ucontext.h3
-rw-r--r--sysdeps/unix/sysv/linux/bits/sigstack.h27
-rw-r--r--sysdeps/unix/sysv/linux/bits/ss_flags.h (renamed from sysdeps/unix/sysv/linux/mips/bits/sigstack.h)34
-rw-r--r--sysdeps/unix/sysv/linux/bits/types/stack_t.h33
-rw-r--r--sysdeps/unix/sysv/linux/hppa/sys/ucontext.h3
-rw-r--r--sysdeps/unix/sysv/linux/ia64/bits/sigcontext.h3
-rw-r--r--sysdeps/unix/sysv/linux/ia64/bits/sigstack.h27
-rw-r--r--sysdeps/unix/sysv/linux/ia64/sys/ucontext.h3
-rw-r--r--sysdeps/unix/sysv/linux/m68k/sys/ucontext.h3
-rw-r--r--sysdeps/unix/sysv/linux/mips/bits/types/stack_t.h33
-rw-r--r--sysdeps/unix/sysv/linux/mips/sys/ucontext.h3
-rw-r--r--sysdeps/unix/sysv/linux/nios2/sys/ucontext.h3
-rw-r--r--sysdeps/unix/sysv/linux/powerpc/bits/sigstack.h27
-rw-r--r--sysdeps/unix/sysv/linux/powerpc/sys/ucontext.h3
-rw-r--r--sysdeps/unix/sysv/linux/s390/sys/ucontext.h3
-rw-r--r--sysdeps/unix/sysv/linux/sh/sys/ucontext.h3
-rw-r--r--sysdeps/unix/sysv/linux/sparc/bits/sigstack.h27
-rw-r--r--sysdeps/unix/sysv/linux/sparc/sys/ucontext.h3
-rw-r--r--sysdeps/unix/sysv/linux/tile/sys/ucontext.h3
-rw-r--r--sysdeps/unix/sysv/linux/x86/sys/ucontext.h3
37 files changed, 306 insertions, 219 deletions
diff --git a/ChangeLog b/ChangeLog
index b9fbdb8351..f25eb14ca9 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -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
-};
-