diff options
author | Zack Weinberg <zackw@panix.com> | 2016-07-13 16:11:57 -0400 |
---|---|---|
committer | Zack Weinberg <zackw@panix.com> | 2016-09-23 08:43:56 -0400 |
commit | c66b29f9cce9bf7c67d55879dff5e4cd03ecfac1 (patch) | |
tree | ea38f75200f4a9d374ae7f3cf0ca5c7838c18c1c /sysdeps/unix | |
parent | 05b68e14b146586c46121730241142256f0ef850 (diff) | |
download | glibc-c66b29f9cce9bf7c67d55879dff5e4cd03ecfac1.tar glibc-c66b29f9cce9bf7c67d55879dff5e4cd03ecfac1.tar.gz glibc-c66b29f9cce9bf7c67d55879dff5e4cd03ecfac1.tar.bz2 glibc-c66b29f9cce9bf7c67d55879dff5e4cd03ecfac1.zip |
Installed-header hygiene (BZ#20366): stack_t.
sys/ucontext.h unconditionally uses stack_t, and it does not make
sense to change that. But signal.h only declares stack_t under
__USE_XOPEN_EXTENDED || __USE_XOPEN2K8. The actual definition is
already in a bits header, bits/sigstack.h, but that header insists on
only being included by signal.h, so we have to change that as well as
all of the sys/ucontext.h variants. (Some but not all variants of
bits/sigcontext.h, which sys/ucontext.h may also need, had already
received this adjustment; for consistency, I made them all the same,
even if that's not strictly necessary in some configurations.)
bits/sigcontext.h and bits/sigstack.h also all need to receive
multiple inclusion guards.
* 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.
Diffstat (limited to 'sysdeps/unix')
24 files changed, 183 insertions, 100 deletions
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__ |