From patchwork Tue Aug 30 01:16:39 2016 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Zack Weinberg X-Patchwork-Id: 15053 Received: (qmail 26492 invoked by alias); 30 Aug 2016 01:17:19 -0000 Mailing-List: contact libc-alpha-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Unsubscribe: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: libc-alpha-owner@sourceware.org Delivered-To: mailing list libc-alpha@sourceware.org Received: (qmail 26394 invoked by uid 89); 30 Aug 2016 01:17:19 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-3.3 required=5.0 tests=AWL, BAYES_00, RP_MATCHES_RCVD, SPF_HELO_PASS, SPF_PASS autolearn=ham version=3.3.2 spammy=2110, touches, 1164, sig X-HELO: l2mail1.panix.com From: Zack Weinberg To: libc-alpha@sourceware.org Cc: joseph@codesourcery.com Subject: [PATCH 07/13] Installed-header hygiene (BZ#20366): stack_t. Date: Mon, 29 Aug 2016 21:16:39 -0400 Message-Id: <20160830011645.25769-8-zackw@panix.com> In-Reply-To: <20160830011645.25769-7-zackw@panix.com> References: <20160830011645.25769-1-zackw@panix.com> <20160830011645.25769-2-zackw@panix.com> <20160830011645.25769-3-zackw@panix.com> <20160830011645.25769-4-zackw@panix.com> <20160830011645.25769-5-zackw@panix.com> <20160830011645.25769-6-zackw@panix.com> <20160830011645.25769-7-zackw@panix.com> MIME-Version: 1.0 This is long and repetitive because it touches a whole bunch of sysdeps headers. 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 (why were we being sloppy about that?) * 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. --- bits/sigcontext.h | 7 +++++- bits/sigstack.h | 7 +++++- 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 +++-- 32 files changed, 229 insertions(+), 108 deletions(-) diff --git a/bits/sigcontext.h b/bits/sigcontext.h index 85b2a96..ddc4966 100644 --- a/bits/sigcontext.h +++ b/bits/sigcontext.h @@ -16,7 +16,10 @@ License along with the GNU C Library; if not, see . */ -#ifndef _SIGNAL_H +#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 @@ struct sigcontext }; /* Signal subcodes should be defined here. */ + +#endif /* bits/sigcontext.h */ diff --git a/bits/sigstack.h b/bits/sigstack.h index b4b911e..62020b3 100644 --- a/bits/sigstack.h +++ b/bits/sigstack.h @@ -16,7 +16,10 @@ 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 @@ -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 744cb53..28bf860 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 f08cec0..b5ec972 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 d08e1a7..882173b 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 ef85368..1c363a8 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 6d15b03..73585e1 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 b3d752b..89970a8 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 5b09b7c..cb3e97d 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 01da3ca..2e3e1ee 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 + +/* We need the signal context definitions even if they are not exposed + by . */ +#include +#include + #include -/* We need the signal context definitions even if they are not used - included in . */ -#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 6ad3363..b2de7a1 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 a42e662..0fa4c1f 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 f32eadc..c7acead 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 46cacb7..bdeaae8 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 115a98e..d858f09 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 f6fd367..fa2bd8c 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 591e7a2..af15ee8 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 0cd5e84..f22e503 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 c79fced..730aa78 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 d8ee542..66f4b55 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 2e96654..9e1ace9 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 b5d2e2a..1ab0c68 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 a44ec61..26c55de 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 5b9c0c1..b06f439 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 2b97bc7..c4634f6 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 78f5fd7..0128d1f 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 ab9a7e6..2c5fa04 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 43253f2..8794ddd 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 5b9c0c1..b06f439 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 d7bf2ae..5856398 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 d930a1f..59c9bd1 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 0620635..99ee946 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__