summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog42
-rw-r--r--bits/sigcontext.h7
-rw-r--r--bits/sigstack.h7
-rw-r--r--sysdeps/arm/sys/ucontext.h6
-rw-r--r--sysdeps/generic/sys/ucontext.h6
-rw-r--r--sysdeps/i386/sys/ucontext.h6
-rw-r--r--sysdeps/m68k/sys/ucontext.h6
-rw-r--r--sysdeps/mach/hurd/i386/bits/sigcontext.h7
-rw-r--r--sysdeps/mips/sys/ucontext.h9
-rw-r--r--sysdeps/unix/sysv/linux/aarch64/bits/sigstack.h25
-rw-r--r--sysdeps/unix/sysv/linux/aarch64/sys/ucontext.h9
-rw-r--r--sysdeps/unix/sysv/linux/alpha/bits/sigstack.h25
-rw-r--r--sysdeps/unix/sysv/linux/alpha/sys/ucontext.h3
-rw-r--r--sysdeps/unix/sysv/linux/arm/sys/ucontext.h6
-rw-r--r--sysdeps/unix/sysv/linux/bits/sigcontext.h5
-rw-r--r--sysdeps/unix/sysv/linux/bits/sigstack.h25
-rw-r--r--sysdeps/unix/sysv/linux/hppa/sys/ucontext.h5
-rw-r--r--sysdeps/unix/sysv/linux/ia64/bits/sigcontext.h6
-rw-r--r--sysdeps/unix/sysv/linux/ia64/bits/sigstack.h29
-rw-r--r--sysdeps/unix/sysv/linux/ia64/sys/ucontext.h4
-rw-r--r--sysdeps/unix/sysv/linux/m68k/sys/ucontext.h6
-rw-r--r--sysdeps/unix/sysv/linux/mips/bits/sigstack.h25
-rw-r--r--sysdeps/unix/sysv/linux/mips/sys/ucontext.h9
-rw-r--r--sysdeps/unix/sysv/linux/nios2/sys/ucontext.h6
-rw-r--r--sysdeps/unix/sysv/linux/powerpc/bits/sigstack.h25
-rw-r--r--sysdeps/unix/sysv/linux/powerpc/sys/ucontext.h6
-rw-r--r--sysdeps/unix/sysv/linux/s390/sys/ucontext.h10
-rw-r--r--sysdeps/unix/sysv/linux/sh/sys/ucontext.h5
-rw-r--r--sysdeps/unix/sysv/linux/sparc/bits/sigcontext.h5
-rw-r--r--sysdeps/unix/sysv/linux/sparc/bits/sigstack.h25
-rw-r--r--sysdeps/unix/sysv/linux/sparc/sys/ucontext.h7
-rw-r--r--sysdeps/unix/sysv/linux/tile/sys/ucontext.h6
-rw-r--r--sysdeps/unix/sysv/linux/x86/sys/ucontext.h6
33 files changed, 271 insertions, 108 deletions
diff --git a/ChangeLog b/ChangeLog
index b428ba42ee..47ea83666f 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,47 @@
2016-09-23 Zack Weinberg <zackw@panix.com>
+ * sysdeps/generic/sys/ucontext.h
+ * sysdeps/arm/sys/ucontext.h
+ * sysdeps/i386/sys/ucontext.h
+ * sysdeps/m68k/sys/ucontext.h
+ * sysdeps/mips/sys/ucontext.h
+ * sysdeps/unix/sysv/linux/aarch64/sys/ucontext.h
+ * sysdeps/unix/sysv/linux/alpha/sys/ucontext.h
+ * sysdeps/unix/sysv/linux/arm/sys/ucontext.h
+ * sysdeps/unix/sysv/linux/hppa/sys/ucontext.h
+ * sysdeps/unix/sysv/linux/ia64/sys/ucontext.h
+ * sysdeps/unix/sysv/linux/m68k/sys/ucontext.h
+ * sysdeps/unix/sysv/linux/mips/sys/ucontext.h
+ * sysdeps/unix/sysv/linux/nios2/sys/ucontext.h
+ * sysdeps/unix/sysv/linux/powerpc/sys/ucontext.h
+ * sysdeps/unix/sysv/linux/s390/sys/ucontext.h
+ * sysdeps/unix/sysv/linux/sh/sys/ucontext.h
+ * sysdeps/unix/sysv/linux/sparc/sys/ucontext.h
+ * sysdeps/unix/sysv/linux/tile/sys/ucontext.h
+ * sysdeps/unix/sysv/linux/x86/sys/ucontext.h:
+ Include both bits/sigcontext.h and bits/sigstack.h.
+ Fix grammar error in comment, if present.
+
+ * bits/sigstack.h
+ * sysdeps/unix/sysv/linux/aarch64/bits/sigstack.h
+ * sysdeps/unix/sysv/linux/alpha/bits/sigstack.h
+ * sysdeps/unix/sysv/linux/bits/sigstack.h
+ * sysdeps/unix/sysv/linux/ia64/bits/sigstack.h
+ * sysdeps/unix/sysv/linux/mips/bits/sigstack.h
+ * sysdeps/unix/sysv/linux/powerpc/bits/sigstack.h
+ * sysdeps/unix/sysv/linux/sparc/bits/sigstack.h
+ * bits/sigcontext.h
+ * sysdeps/mach/hurd/i386/bits/sigcontext.h
+ * sysdeps/unix/sysv/linux/bits/sigcontext.h
+ * sysdeps/unix/sysv/linux/ia64/bits/sigcontext.h
+ * sysdeps/unix/sysv/linux/sparc/bits/sigcontext.h:
+ Add multiple inclusion guard. Permit inclusion by sys/ucontext.h
+ as well as signal.h, if this was not already allowed. Request
+ definition of size_t if necessary. Minimize semantically-null
+ differences across files.
+
+2016-09-23 Zack Weinberg <zackw@panix.com>
+
* time/time.h, bits/time.h, sysdeps/unix/sysv/linux/bits/time.h:
Remove all logic conditional on __need macros. Move all the
conditionally defined types to their own headers...
diff --git a/bits/sigcontext.h b/bits/sigcontext.h
index 85b2a96d9f..ddc4966d6b 100644
--- a/bits/sigcontext.h
+++ b/bits/sigcontext.h
@@ -16,7 +16,10 @@
License along with the GNU C Library; if not, see
<http://www.gnu.org/licenses/>. */
-#ifndef _SIGNAL_H
+#ifndef _BITS_SIGCONTEXT_H
+#define _BITS_SIGCONTEXT_H 1
+
+#if !defined _SIGNAL_H && !defined _SYS_UCONTEXT_H
# error "Never use <bits/sigcontext.h> directly; include <signal.h> instead."
#endif
@@ -30,3 +33,5 @@ struct sigcontext
};
/* Signal subcodes should be defined here. */
+
+#endif /* bits/sigcontext.h */
diff --git a/bits/sigstack.h b/bits/sigstack.h
index b4b911e7d1..62020b396e 100644
--- a/bits/sigstack.h
+++ b/bits/sigstack.h
@@ -16,7 +16,10 @@
License along with the GNU C Library; if not, see
<http://www.gnu.org/licenses/>. */
-#ifndef _SIGNAL_H
+#ifndef _BITS_SIGSTACK_H
+#define _BITS_SIGSTACK_H 1
+
+#if !defined _SIGNAL_H && !defined _SYS_UCONTEXT_H
# error "Never include this file directly. Use <signal.h> instead"
#endif
@@ -52,3 +55,5 @@ enum
/* System default stack size. */
#define SIGSTKSZ (MINSIGSTKSZ + 32768)
+
+#endif /* bits/sigstack.h */
diff --git a/sysdeps/arm/sys/ucontext.h b/sysdeps/arm/sys/ucontext.h
index 744cb538cf..28bf860100 100644
--- a/sysdeps/arm/sys/ucontext.h
+++ b/sysdeps/arm/sys/ucontext.h
@@ -23,6 +23,12 @@
#include <features.h>
#include <signal.h>
+/* We need the signal context definitions even if they are not exposed
+ by <signal.h>. */
+#include <bits/sigcontext.h>
+#include <bits/sigstack.h>
+
+
typedef int greg_t;
/* Number of general registers. */
diff --git a/sysdeps/generic/sys/ucontext.h b/sysdeps/generic/sys/ucontext.h
index f08cec04cc..b5ec972a91 100644
--- a/sysdeps/generic/sys/ucontext.h
+++ b/sysdeps/generic/sys/ucontext.h
@@ -25,9 +25,11 @@
#include <features.h>
#include <signal.h>
-/* We need the signal context definitions even if they are not used
- included in <signal.h>. */
+/* We need the signal context definitions even if they are not exposed
+ by <signal.h>. */
#include <bits/sigcontext.h>
+#include <bits/sigstack.h>
+
typedef struct sigcontext mcontext_t;
diff --git a/sysdeps/i386/sys/ucontext.h b/sysdeps/i386/sys/ucontext.h
index d08e1a7f56..882173ba57 100644
--- a/sysdeps/i386/sys/ucontext.h
+++ b/sysdeps/i386/sys/ucontext.h
@@ -23,6 +23,12 @@
#include <features.h>
#include <signal.h>
+/* We need the signal context definitions even if they are not exposed
+ by <signal.h>. */
+#include <bits/sigcontext.h>
+#include <bits/sigstack.h>
+
+
/* Type for general register. */
typedef int greg_t;
diff --git a/sysdeps/m68k/sys/ucontext.h b/sysdeps/m68k/sys/ucontext.h
index ef85368cb2..1c363a8c31 100644
--- a/sysdeps/m68k/sys/ucontext.h
+++ b/sysdeps/m68k/sys/ucontext.h
@@ -23,6 +23,12 @@
#include <features.h>
#include <signal.h>
+/* We need the signal context definitions even if they are not exposed
+ by <signal.h>. */
+#include <bits/sigcontext.h>
+#include <bits/sigstack.h>
+
+
/* Type for general register. */
typedef int greg_t;
diff --git a/sysdeps/mach/hurd/i386/bits/sigcontext.h b/sysdeps/mach/hurd/i386/bits/sigcontext.h
index 6d15b039ef..73585e18d1 100644
--- a/sysdeps/mach/hurd/i386/bits/sigcontext.h
+++ b/sysdeps/mach/hurd/i386/bits/sigcontext.h
@@ -16,12 +16,13 @@
License along with the GNU C Library; if not, see
<http://www.gnu.org/licenses/>. */
+#ifndef _BITS_SIGCONTEXT_H
+#define _BITS_SIGCONTEXT_H 1
+
#if !defined _SIGNAL_H && !defined _SYS_UCONTEXT_H
# error "Never use <bits/sigcontext.h> directly; include <signal.h> instead."
#endif
-#ifndef sc_pc
-
/* Signal handlers are actually called:
void handler (int sig, int code, struct sigcontext *scp); */
@@ -116,4 +117,4 @@ struct sigcontext
#define DBG_SINGLE_TRAP 0x1 /* single step */
#define DBG_BRKPNT_FAULT 0x2 /* breakpoint instruction */
-#endif /* sc_pc */
+#endif /* bits/sigcontext.h */
diff --git a/sysdeps/mips/sys/ucontext.h b/sysdeps/mips/sys/ucontext.h
index b3d752bc46..89970a8337 100644
--- a/sysdeps/mips/sys/ucontext.h
+++ b/sysdeps/mips/sys/ucontext.h
@@ -21,9 +21,16 @@
#define _SYS_UCONTEXT_H 1
#include <features.h>
-#include <sgidefs.h>
#include <signal.h>
+/* We need the signal context definitions even if they are not exposed
+ by <signal.h>. */
+#include <bits/sigcontext.h>
+#include <bits/sigstack.h>
+
+#include <sgidefs.h>
+
+
/* Type for general register. */
#if _MIPS_SIM == _ABIO32
typedef __uint32_t greg_t;
diff --git a/sysdeps/unix/sysv/linux/aarch64/bits/sigstack.h b/sysdeps/unix/sysv/linux/aarch64/bits/sigstack.h
index 5b09b7c8c3..cb3e97d90d 100644
--- a/sysdeps/unix/sysv/linux/aarch64/bits/sigstack.h
+++ b/sysdeps/unix/sysv/linux/aarch64/bits/sigstack.h
@@ -16,10 +16,15 @@
License along with the GNU C Library; if not, see
<http://www.gnu.org/licenses/>. */
-#ifndef _SIGNAL_H
+#ifndef _BITS_SIGSTACK_H
+#define _BITS_SIGSTACK_H 1
+
+#if !defined _SIGNAL_H && !defined _SYS_UCONTEXT_H
# 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
@@ -28,8 +33,15 @@ struct sigstack
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.'. */
+/* Possible values for `ss_flags'. */
enum
{
SS_ONSTACK = 1,
@@ -44,11 +56,4 @@ enum
/* System default stack size. */
#define SIGSTKSZ 16384
-
-/* Alternate, preferred interface. */
-typedef struct sigaltstack
- {
- void *ss_sp;
- int ss_flags;
- size_t ss_size;
- } stack_t;
+#endif /* bits/sigstack.h */
diff --git a/sysdeps/unix/sysv/linux/aarch64/sys/ucontext.h b/sysdeps/unix/sysv/linux/aarch64/sys/ucontext.h
index 01da3ca858..2e3e1ee87d 100644
--- a/sysdeps/unix/sysv/linux/aarch64/sys/ucontext.h
+++ b/sysdeps/unix/sysv/linux/aarch64/sys/ucontext.h
@@ -23,11 +23,14 @@
#include <features.h>
#include <signal.h>
-#include <sys/procfs.h>
-/* We need the signal context definitions even if they are not used
- included in <signal.h>. */
+/* We need the signal context definitions even if they are not exposed
+ by <signal.h>. */
#include <bits/sigcontext.h>
+#include <bits/sigstack.h>
+
+#include <sys/procfs.h>
+
typedef elf_greg_t greg_t;
diff --git a/sysdeps/unix/sysv/linux/alpha/bits/sigstack.h b/sysdeps/unix/sysv/linux/alpha/bits/sigstack.h
index 6ad3363ddf..b2de7a1d3e 100644
--- a/sysdeps/unix/sysv/linux/alpha/bits/sigstack.h
+++ b/sysdeps/unix/sysv/linux/alpha/bits/sigstack.h
@@ -16,10 +16,15 @@
License along with the GNU C Library. If not, see
<http://www.gnu.org/licenses/>. */
-#ifndef _SIGNAL_H
+#ifndef _BITS_SIGSTACK_H
+#define _BITS_SIGSTACK_H 1
+
+#if !defined _SIGNAL_H && !defined _SYS_UCONTEXT_H
# 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
@@ -28,8 +33,15 @@ struct sigstack
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.'. */
+/* Possible values for `ss_flags'. */
enum
{
SS_ONSTACK = 1,
@@ -44,11 +56,4 @@ enum
/* System default stack size. */
#define SIGSTKSZ 16384
-
-/* Alternate, preferred interface. */
-typedef struct sigaltstack
- {
- __ptr_t ss_sp;
- int ss_flags;
- size_t ss_size;
- } stack_t;
+#endif /* bits/sigstack.h */
diff --git a/sysdeps/unix/sysv/linux/alpha/sys/ucontext.h b/sysdeps/unix/sysv/linux/alpha/sys/ucontext.h
index a42e662cf5..0fa4c1f996 100644
--- a/sysdeps/unix/sysv/linux/alpha/sys/ucontext.h
+++ b/sysdeps/unix/sysv/linux/alpha/sys/ucontext.h
@@ -21,7 +21,10 @@
#include <features.h>
#include <signal.h>
+/* We need the signal context definitions even if they are not exposed
+ by <signal.h>. */
#include <bits/sigcontext.h>
+#include <bits/sigstack.h>
/* Type for general register. */
diff --git a/sysdeps/unix/sysv/linux/arm/sys/ucontext.h b/sysdeps/unix/sysv/linux/arm/sys/ucontext.h
index f32eadc099..c7aceadb7d 100644
--- a/sysdeps/unix/sysv/linux/arm/sys/ucontext.h
+++ b/sysdeps/unix/sysv/linux/arm/sys/ucontext.h
@@ -23,9 +23,11 @@
#include <features.h>
#include <signal.h>
-/* We need the signal context definitions even if they are not used
- included in <signal.h>. */
+/* We need the signal context definitions even if they are not exposed
+ by <signal.h>. */
#include <bits/sigcontext.h>
+#include <bits/sigstack.h>
+
typedef int greg_t;
diff --git a/sysdeps/unix/sysv/linux/bits/sigcontext.h b/sysdeps/unix/sysv/linux/bits/sigcontext.h
index 46cacb7b2c..bdeaae8ad2 100644
--- a/sysdeps/unix/sysv/linux/bits/sigcontext.h
+++ b/sysdeps/unix/sysv/linux/bits/sigcontext.h
@@ -15,6 +15,9 @@
License along with the GNU C Library; if not, see
<http://www.gnu.org/licenses/>. */
+#ifndef _BITS_SIGCONTEXT_H
+#define _BITS_SIGCONTEXT_H 1
+
#if !defined _SIGNAL_H && !defined _SYS_UCONTEXT_H
# error "Never use <bits/sigcontext.h> directly; include <signal.h> instead."
#endif
@@ -30,3 +33,5 @@
# define __need_NULL
# include <stddef.h>
#endif
+
+#endif /* bits/sigcontext.h */
diff --git a/sysdeps/unix/sysv/linux/bits/sigstack.h b/sysdeps/unix/sysv/linux/bits/sigstack.h
index 115a98ec6b..d858f09b73 100644
--- a/sysdeps/unix/sysv/linux/bits/sigstack.h
+++ b/sysdeps/unix/sysv/linux/bits/sigstack.h
@@ -16,10 +16,15 @@
License along with the GNU C Library; if not, see
<http://www.gnu.org/licenses/>. */
-#ifndef _SIGNAL_H
+#ifndef _BITS_SIGSTACK_H
+#define _BITS_SIGSTACK_H 1
+
+#if !defined _SIGNAL_H && !defined _SYS_UCONTEXT_H
# 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
@@ -28,8 +33,15 @@ struct sigstack
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.'. */
+/* Possible values for `ss_flags'. */
enum
{
SS_ONSTACK = 1,
@@ -44,11 +56,4 @@ enum
/* System default stack size. */
#define SIGSTKSZ 8192
-
-/* Alternate, preferred interface. */
-typedef struct sigaltstack
- {
- void *ss_sp;
- int ss_flags;
- size_t ss_size;
- } stack_t;
+#endif /* bits/sigstack.h */
diff --git a/sysdeps/unix/sysv/linux/hppa/sys/ucontext.h b/sysdeps/unix/sysv/linux/hppa/sys/ucontext.h
index f6fd367bd9..fa2bd8c048 100644
--- a/sysdeps/unix/sysv/linux/hppa/sys/ucontext.h
+++ b/sysdeps/unix/sysv/linux/hppa/sys/ucontext.h
@@ -23,9 +23,10 @@
#include <features.h>
#include <signal.h>
-/* We need the signal context definitions even if they are not used
- included in <signal.h>. */
+/* We need the signal context definitions even if they are not exposed
+ by <signal.h>. */
#include <bits/sigcontext.h>
+#include <bits/sigstack.h>
/* Type for general register. */
diff --git a/sysdeps/unix/sysv/linux/ia64/bits/sigcontext.h b/sysdeps/unix/sysv/linux/ia64/bits/sigcontext.h
index 591e7a22f0..af15ee856b 100644
--- a/sysdeps/unix/sysv/linux/ia64/bits/sigcontext.h
+++ b/sysdeps/unix/sysv/linux/ia64/bits/sigcontext.h
@@ -16,13 +16,13 @@
License along with the GNU C Library; if not, see
<http://www.gnu.org/licenses/>. */
+#ifndef _BITS_SIGCONTEXT_H
+#define _BITS_SIGCONTEXT_H 1
+
#if !defined _SIGNAL_H && !defined _SYS_UCONTEXT_H
# error "Never use <bits/sigcontext.h> directly; include <signal.h> instead."
#endif
-#ifndef _BITS_SIGCONTEXT_H
-#define _BITS_SIGCONTEXT_H 1
-
#define __need_size_t
#include <stddef.h>
#include <bits/sigstack.h>
diff --git a/sysdeps/unix/sysv/linux/ia64/bits/sigstack.h b/sysdeps/unix/sysv/linux/ia64/bits/sigstack.h
index 0cd5e84043..f22e503f48 100644
--- a/sysdeps/unix/sysv/linux/ia64/bits/sigstack.h
+++ b/sysdeps/unix/sysv/linux/ia64/bits/sigstack.h
@@ -16,12 +16,15 @@
License along with the GNU C Library; if not, see
<http://www.gnu.org/licenses/>. */
-#ifndef _SIGNAL_H
+#ifndef _BITS_SIGSTACK_H
+#define _BITS_SIGSTACK_H 1
+
+#if !defined _SIGNAL_H && !defined _SYS_UCONTEXT_H
# error "Never include this file directly. Use <signal.h> instead"
#endif
-#ifndef _SIGSTACK_H
-#define _SIGSTACK_H 1
+#define __need_size_t
+#include <stddef.h>
/* Structure describing a signal stack (obsolete). */
struct sigstack
@@ -30,8 +33,15 @@ struct sigstack
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.'. */
+/* Possible values for `ss_flags'. */
enum
{
SS_ONSTACK = 1,
@@ -50,13 +60,4 @@ enum
/* System default stack size. */
#define SIGSTKSZ 262144
-
-/* Alternate, preferred interface. */
-typedef struct sigaltstack
- {
- __ptr_t ss_sp;
- int ss_flags;
- size_t ss_size;
- } stack_t;
-
-#endif /* bits/sigstack.h */
+#endif /* bits/sigstack.h */
diff --git a/sysdeps/unix/sysv/linux/ia64/sys/ucontext.h b/sysdeps/unix/sysv/linux/ia64/sys/ucontext.h
index c79fced452..730aa78fda 100644
--- a/sysdeps/unix/sysv/linux/ia64/sys/ucontext.h
+++ b/sysdeps/unix/sysv/linux/ia64/sys/ucontext.h
@@ -21,7 +21,11 @@
#include <features.h>
#include <signal.h>
+/* We need the signal context definitions even if they are not exposed
+ by <signal.h>. */
#include <bits/sigcontext.h>
+#include <bits/sigstack.h>
+
/*
* These are here mostly for backwards compatibility with older Unices.
diff --git a/sysdeps/unix/sysv/linux/m68k/sys/ucontext.h b/sysdeps/unix/sysv/linux/m68k/sys/ucontext.h
index d8ee5423a5..66f4b55307 100644
--- a/sysdeps/unix/sysv/linux/m68k/sys/ucontext.h
+++ b/sysdeps/unix/sysv/linux/m68k/sys/ucontext.h
@@ -23,6 +23,12 @@
#include <features.h>
#include <signal.h>
+/* We need the signal context definitions even if they are not exposed
+ by <signal.h>. */
+#include <bits/sigcontext.h>
+#include <bits/sigstack.h>
+
+
/* Type for general register. */
typedef int greg_t;
diff --git a/sysdeps/unix/sysv/linux/mips/bits/sigstack.h b/sysdeps/unix/sysv/linux/mips/bits/sigstack.h
index 2e9665444a..9e1ace9fdd 100644
--- a/sysdeps/unix/sysv/linux/mips/bits/sigstack.h
+++ b/sysdeps/unix/sysv/linux/mips/bits/sigstack.h
@@ -16,10 +16,15 @@
License along with the GNU C Library. If not, see
<http://www.gnu.org/licenses/>. */
-#ifndef _SIGNAL_H
+#ifndef _BITS_SIGSTACK_H
+#define _BITS_SIGSTACK_H 1
+
+#if !defined _SIGNAL_H && !defined _SYS_UCONTEXT_H
# 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
@@ -28,8 +33,15 @@ struct sigstack
int ss_onstack; /* Nonzero if executing on this stack. */
};
+/* Alternate, preferred interface. */
+typedef struct sigaltstack
+ {
+ void *ss_sp;
+ size_t ss_size;
+ int ss_flags;
+ } stack_t;
-/* Possible values for `ss_flags.'. */
+/* Possible values for `ss_flags'. */
enum
{
SS_ONSTACK = 1,
@@ -44,11 +56,4 @@ enum
/* System default stack size. */
#define SIGSTKSZ 8192
-
-/* Alternate, preferred interface. */
-typedef struct sigaltstack
- {
- void *ss_sp;
- size_t ss_size;
- int ss_flags;
- } stack_t;
+#endif /* bits/sigstack.h */
diff --git a/sysdeps/unix/sysv/linux/mips/sys/ucontext.h b/sysdeps/unix/sysv/linux/mips/sys/ucontext.h
index b5d2e2ab10..1ab0c686ef 100644
--- a/sysdeps/unix/sysv/linux/mips/sys/ucontext.h
+++ b/sysdeps/unix/sysv/linux/mips/sys/ucontext.h
@@ -20,12 +20,15 @@
#define _SYS_UCONTEXT_H 1
#include <features.h>
-#include <sgidefs.h>
#include <signal.h>
-/* We need the signal context definitions even if they are not used
- included in <signal.h>. */
+/* We need the signal context definitions even if they are not exposed
+ by <signal.h>. */
#include <bits/sigcontext.h>
+#include <bits/sigstack.h>
+
+#include <sgidefs.h>
+
/* Type for general register. Even in o32 we assume 64-bit registers,
like the kernel. */
diff --git a/sysdeps/unix/sysv/linux/nios2/sys/ucontext.h b/sysdeps/unix/sysv/linux/nios2/sys/ucontext.h
index a44ec61fa0..26c55de312 100644
--- a/sysdeps/unix/sysv/linux/nios2/sys/ucontext.h
+++ b/sysdeps/unix/sysv/linux/nios2/sys/ucontext.h
@@ -24,6 +24,12 @@
#include <features.h>
#include <signal.h>
+/* We need the signal context definitions even if they are not exposed
+ by <signal.h>. */
+#include <bits/sigcontext.h>
+#include <bits/sigstack.h>
+
+
/* These definitions must be in sync with the kernel. */
#define MCONTEXT_VERSION 2
diff --git a/sysdeps/unix/sysv/linux/powerpc/bits/sigstack.h b/sysdeps/unix/sysv/linux/powerpc/bits/sigstack.h
index 5b9c0c1be9..b06f439306 100644
--- a/sysdeps/unix/sysv/linux/powerpc/bits/sigstack.h
+++ b/sysdeps/unix/sysv/linux/powerpc/bits/sigstack.h
@@ -16,10 +16,15 @@
License along with the GNU C Library; if not, see
<http://www.gnu.org/licenses/>. */
-#ifndef _SIGNAL_H
+#ifndef _BITS_SIGSTACK_H
+#define _BITS_SIGSTACK_H 1
+
+#if !defined _SIGNAL_H && !defined _SYS_UCONTEXT_H
# 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
@@ -28,8 +33,15 @@ struct sigstack
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.'. */
+/* Possible values for `ss_flags'. */
enum
{
SS_ONSTACK = 1,
@@ -44,11 +56,4 @@ enum
/* System default stack size. */
#define SIGSTKSZ 16384
-
-/* Alternate, preferred interface. */
-typedef struct sigaltstack
- {
- void *ss_sp;
- int ss_flags;
- size_t ss_size;
- } stack_t;
+#endif /* bits/sigstack.h */
diff --git a/sysdeps/unix/sysv/linux/powerpc/sys/ucontext.h b/sysdeps/unix/sysv/linux/powerpc/sys/ucontext.h
index 2b97bc71bd..c4634f68b5 100644
--- a/sysdeps/unix/sysv/linux/powerpc/sys/ucontext.h
+++ b/sysdeps/unix/sysv/linux/powerpc/sys/ucontext.h
@@ -21,9 +21,11 @@
#include <features.h>
#include <signal.h>
-/* We need the signal context definitions even if they are not used
- included in <signal.h>. */
+/* We need the signal context definitions even if they are not exposed
+ by <signal.h>. */
#include <bits/sigcontext.h>
+#include <bits/sigstack.h>
+
#if __WORDSIZE == 32
diff --git a/sysdeps/unix/sysv/linux/s390/sys/ucontext.h b/sysdeps/unix/sysv/linux/s390/sys/ucontext.h
index 78f5fd77a1..0128d1fa55 100644
--- a/sysdeps/unix/sysv/linux/s390/sys/ucontext.h
+++ b/sysdeps/unix/sysv/linux/s390/sys/ucontext.h
@@ -18,15 +18,15 @@
#ifndef _SYS_UCONTEXT_H
#define _SYS_UCONTEXT_H 1
-/* Forward definition to avoid parse errors */
-struct ucontext;
-typedef struct ucontext ucontext_t;
+
#include <features.h>
#include <signal.h>
-/* We need the signal context definitions even if they are not used
- included in <signal.h>. */
+/* We need the signal context definitions even if they are not exposed
+ by in <signal.h>. */
#include <bits/sigcontext.h>
+#include <bits/sigstack.h>
+
/* Type for a program status word. */
typedef struct
diff --git a/sysdeps/unix/sysv/linux/sh/sys/ucontext.h b/sysdeps/unix/sysv/linux/sh/sys/ucontext.h
index ab9a7e66bf..2c5fa0431c 100644
--- a/sysdeps/unix/sysv/linux/sh/sys/ucontext.h
+++ b/sysdeps/unix/sysv/linux/sh/sys/ucontext.h
@@ -23,9 +23,10 @@
#include <features.h>
#include <signal.h>
-/* We need the signal context definitions even if they are not used
- included in <signal.h>. */
+/* We need the signal context definitions even if they are not exposed
+ by <signal.h>. */
#include <bits/sigcontext.h>
+#include <bits/sigstack.h>
typedef int greg_t;
diff --git a/sysdeps/unix/sysv/linux/sparc/bits/sigcontext.h b/sysdeps/unix/sysv/linux/sparc/bits/sigcontext.h
index 43253f2c99..8794dddfa4 100644
--- a/sysdeps/unix/sysv/linux/sparc/bits/sigcontext.h
+++ b/sysdeps/unix/sysv/linux/sparc/bits/sigcontext.h
@@ -15,6 +15,9 @@
License along with the GNU C Library; if not, see
<http://www.gnu.org/licenses/>. */
+#ifndef _BITS_SIGCONTEXT_H
+#define _BITS_SIGCONTEXT_H 1
+
#if !defined _SIGNAL_H && !defined _SYS_UCONTEXT_H
# error "Never use <bits/sigcontext.h> directly; include <signal.h> instead."
#endif
@@ -75,3 +78,5 @@ struct sigcontext
};
#endif /* sparc64 */
+
+#endif /* bits/sigcontext.h */
diff --git a/sysdeps/unix/sysv/linux/sparc/bits/sigstack.h b/sysdeps/unix/sysv/linux/sparc/bits/sigstack.h
index 5b9c0c1be9..b06f439306 100644
--- a/sysdeps/unix/sysv/linux/sparc/bits/sigstack.h
+++ b/sysdeps/unix/sysv/linux/sparc/bits/sigstack.h
@@ -16,10 +16,15 @@
License along with the GNU C Library; if not, see
<http://www.gnu.org/licenses/>. */
-#ifndef _SIGNAL_H
+#ifndef _BITS_SIGSTACK_H
+#define _BITS_SIGSTACK_H 1
+
+#if !defined _SIGNAL_H && !defined _SYS_UCONTEXT_H
# 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
@@ -28,8 +33,15 @@ struct sigstack
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.'. */
+/* Possible values for `ss_flags'. */
enum
{
SS_ONSTACK = 1,
@@ -44,11 +56,4 @@ enum
/* System default stack size. */
#define SIGSTKSZ 16384
-
-/* Alternate, preferred interface. */
-typedef struct sigaltstack
- {
- void *ss_sp;
- int ss_flags;
- size_t ss_size;
- } stack_t;
+#endif /* bits/sigstack.h */
diff --git a/sysdeps/unix/sysv/linux/sparc/sys/ucontext.h b/sysdeps/unix/sysv/linux/sparc/sys/ucontext.h
index d7bf2aedb9..5856398e62 100644
--- a/sysdeps/unix/sysv/linux/sparc/sys/ucontext.h
+++ b/sysdeps/unix/sysv/linux/sparc/sys/ucontext.h
@@ -20,8 +20,15 @@
#include <features.h>
#include <signal.h>
+
+/* We need the signal context definitions even if they are not exposed
+ by <signal.h>. */
+#include <bits/sigcontext.h>
+#include <bits/sigstack.h>
+
#include <bits/wordsize.h>
+
#if __WORDSIZE == 64
#define MC_TSTATE 0
diff --git a/sysdeps/unix/sysv/linux/tile/sys/ucontext.h b/sysdeps/unix/sysv/linux/tile/sys/ucontext.h
index d930a1fea6..59c9bd1c4c 100644
--- a/sysdeps/unix/sysv/linux/tile/sys/ucontext.h
+++ b/sysdeps/unix/sysv/linux/tile/sys/ucontext.h
@@ -22,13 +22,15 @@
#include <features.h>
#include <signal.h>
-/* We need the signal context definitions even if they are not used
- included in <signal.h>. */
+/* We need the signal context definitions even if they are not exposed
+ by <signal.h>. */
#include <bits/sigcontext.h>
+#include <bits/sigstack.h>
/* Get register type and register names. */
#include <arch/abi.h>
+
/* Type for general register. */
typedef uint_reg_t greg_t;
diff --git a/sysdeps/unix/sysv/linux/x86/sys/ucontext.h b/sysdeps/unix/sysv/linux/x86/sys/ucontext.h
index 062063526b..99ee9463ea 100644
--- a/sysdeps/unix/sysv/linux/x86/sys/ucontext.h
+++ b/sysdeps/unix/sysv/linux/x86/sys/ucontext.h
@@ -21,9 +21,11 @@
#include <features.h>
#include <signal.h>
-/* We need the signal context definitions even if they are not used
- included in <signal.h>. */
+/* We need the signal context definitions even if they are not exposed
+ by <signal.h>. */
#include <bits/sigcontext.h>
+#include <bits/sigstack.h>
+
#ifdef __x86_64__