diff options
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__ |