From c66b29f9cce9bf7c67d55879dff5e4cd03ecfac1 Mon Sep 17 00:00:00 2001 From: Zack Weinberg Date: Wed, 13 Jul 2016 16:11:57 -0400 Subject: 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. --- sysdeps/arm/sys/ucontext.h | 6 +++++ sysdeps/generic/sys/ucontext.h | 6 +++-- sysdeps/i386/sys/ucontext.h | 6 +++++ sysdeps/m68k/sys/ucontext.h | 6 +++++ sysdeps/mach/hurd/i386/bits/sigcontext.h | 7 +++--- sysdeps/mips/sys/ucontext.h | 9 +++++++- sysdeps/unix/sysv/linux/aarch64/bits/sigstack.h | 25 ++++++++++++--------- sysdeps/unix/sysv/linux/aarch64/sys/ucontext.h | 9 +++++--- sysdeps/unix/sysv/linux/alpha/bits/sigstack.h | 25 ++++++++++++--------- sysdeps/unix/sysv/linux/alpha/sys/ucontext.h | 3 +++ sysdeps/unix/sysv/linux/arm/sys/ucontext.h | 6 +++-- sysdeps/unix/sysv/linux/bits/sigcontext.h | 5 +++++ sysdeps/unix/sysv/linux/bits/sigstack.h | 25 ++++++++++++--------- sysdeps/unix/sysv/linux/hppa/sys/ucontext.h | 5 +++-- sysdeps/unix/sysv/linux/ia64/bits/sigcontext.h | 6 ++--- sysdeps/unix/sysv/linux/ia64/bits/sigstack.h | 29 +++++++++++++------------ sysdeps/unix/sysv/linux/ia64/sys/ucontext.h | 4 ++++ sysdeps/unix/sysv/linux/m68k/sys/ucontext.h | 6 +++++ sysdeps/unix/sysv/linux/mips/bits/sigstack.h | 25 ++++++++++++--------- sysdeps/unix/sysv/linux/mips/sys/ucontext.h | 9 +++++--- sysdeps/unix/sysv/linux/nios2/sys/ucontext.h | 6 +++++ sysdeps/unix/sysv/linux/powerpc/bits/sigstack.h | 25 ++++++++++++--------- sysdeps/unix/sysv/linux/powerpc/sys/ucontext.h | 6 +++-- sysdeps/unix/sysv/linux/s390/sys/ucontext.h | 10 ++++----- sysdeps/unix/sysv/linux/sh/sys/ucontext.h | 5 +++-- sysdeps/unix/sysv/linux/sparc/bits/sigcontext.h | 5 +++++ sysdeps/unix/sysv/linux/sparc/bits/sigstack.h | 25 ++++++++++++--------- sysdeps/unix/sysv/linux/sparc/sys/ucontext.h | 7 ++++++ sysdeps/unix/sysv/linux/tile/sys/ucontext.h | 6 +++-- sysdeps/unix/sysv/linux/x86/sys/ucontext.h | 6 +++-- 30 files changed, 217 insertions(+), 106 deletions(-) (limited to 'sysdeps') 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 #include +/* We need the signal context definitions even if they are not exposed + by . */ +#include +#include + + 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 #include -/* We need the signal context definitions even if they are not used - included in . */ +/* We need the signal context definitions even if they are not exposed + by . */ #include +#include + 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 #include +/* We need the signal context definitions even if they are not exposed + by . */ +#include +#include + + /* 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 #include +/* We need the signal context definitions even if they are not exposed + by . */ +#include +#include + + /* 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 . */ +#ifndef _BITS_SIGCONTEXT_H +#define _BITS_SIGCONTEXT_H 1 + #if !defined _SIGNAL_H && !defined _SYS_UCONTEXT_H # error "Never use directly; include 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 -#include #include +/* We need the signal context definitions even if they are not exposed + by . */ +#include +#include + +#include + + /* 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 . */ -#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 instead" #endif +#define __need_size_t +#include /* 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 #include -#include -/* We need the signal context definitions even if they are not used - included in . */ +/* We need the signal context definitions even if they are not exposed + by . */ #include +#include + +#include + 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 . */ -#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 instead" #endif +#define __need_size_t +#include /* 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 #include +/* We need the signal context definitions even if they are not exposed + by . */ #include +#include /* 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 #include -/* We need the signal context definitions even if they are not used - included in . */ +/* We need the signal context definitions even if they are not exposed + by . */ #include +#include + 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 . */ +#ifndef _BITS_SIGCONTEXT_H +#define _BITS_SIGCONTEXT_H 1 + #if !defined _SIGNAL_H && !defined _SYS_UCONTEXT_H # error "Never use directly; include instead." #endif @@ -30,3 +33,5 @@ # define __need_NULL # include #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 . */ -#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 instead" #endif +#define __need_size_t +#include /* 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 #include -/* We need the signal context definitions even if they are not used - included in . */ +/* We need the signal context definitions even if they are not exposed + by . */ #include +#include /* 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 . */ +#ifndef _BITS_SIGCONTEXT_H +#define _BITS_SIGCONTEXT_H 1 + #if !defined _SIGNAL_H && !defined _SYS_UCONTEXT_H # error "Never use directly; include instead." #endif -#ifndef _BITS_SIGCONTEXT_H -#define _BITS_SIGCONTEXT_H 1 - #define __need_size_t #include #include 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 . */ -#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 instead" #endif -#ifndef _SIGSTACK_H -#define _SIGSTACK_H 1 +#define __need_size_t +#include /* 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 #include +/* We need the signal context definitions even if they are not exposed + by . */ #include +#include + /* * 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 #include +/* We need the signal context definitions even if they are not exposed + by . */ +#include +#include + + /* 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 . */ -#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 instead" #endif +#define __need_size_t +#include /* 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 -#include #include -/* We need the signal context definitions even if they are not used - included in . */ +/* We need the signal context definitions even if they are not exposed + by . */ #include +#include + +#include + /* 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 #include +/* We need the signal context definitions even if they are not exposed + by . */ +#include +#include + + /* 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 . */ -#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 instead" #endif +#define __need_size_t +#include /* 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 #include -/* We need the signal context definitions even if they are not used - included in . */ +/* We need the signal context definitions even if they are not exposed + by . */ #include +#include + #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 #include -/* We need the signal context definitions even if they are not used - included in . */ +/* We need the signal context definitions even if they are not exposed + by in . */ #include +#include + /* 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 #include -/* We need the signal context definitions even if they are not used - included in . */ +/* We need the signal context definitions even if they are not exposed + by . */ #include +#include 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 . */ +#ifndef _BITS_SIGCONTEXT_H +#define _BITS_SIGCONTEXT_H 1 + #if !defined _SIGNAL_H && !defined _SYS_UCONTEXT_H # error "Never use directly; include 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 . */ -#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 instead" #endif +#define __need_size_t +#include /* 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 #include + +/* We need the signal context definitions even if they are not exposed + by . */ +#include +#include + #include + #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 #include -/* We need the signal context definitions even if they are not used - included in . */ +/* We need the signal context definitions even if they are not exposed + by . */ #include +#include /* Get register type and register names. */ #include + /* 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 #include -/* We need the signal context definitions even if they are not used - included in . */ +/* We need the signal context definitions even if they are not exposed + by . */ #include +#include + #ifdef __x86_64__ -- cgit 1.4.1