From cfed8ece799b6e6540193a14b41d9de52dc3b08f Mon Sep 17 00:00:00 2001 From: Joseph Myers Date: Tue, 23 May 2017 11:49:48 +0000 Subject: Fix sys/ucontext.h namespace from signal.h etc. inclusion (bug 21457). The various sys/ucontext.h headers include and all the headers split out of . (Except that the powerpc version does not include .) None of the standard versions defining ucontext.h require or permit such inclusions; rather, they all say that the stack_t and sigset_t types from signal.h are defined. This patch fixes the headers to include just the bits/ headers for those types (and the existing includes of bits/sigcontext.h). Since bits/types/sigset_t.h is now being included instead of bits/types/__sigset_t.h, __sigset_t uses in the headers are replaced by direct use of the public sigset_t type. sysdeps/unix/sysv/linux/x86/bits/sigcontext.h was relying on the prior inclusion of to define types such as __uint32_t, so gets a bits/types.h include added to provide those types. Although one could keep some or all of the includes under a __USE_MISC conditional, that seems unnecessary to me, especially given the lack of a include in the powerpc version meaning that portable programs already cannot rely on such an include. Tested for x86_64 and x86, and with build-many-glibcs.py. As with other such fixes, more namespace issues remain so this does not permit any XFAILs to be removed or bugs to be closed. [BZ #21457] * sysdeps/arm/sys/ucontext.h: Do not include , , or . Include instead of . (ucontext_t): Use sigset_t instead of __sigset_t. * sysdeps/generic/sys/ucontext.h: Do not include , , or . Include instead of . (ucontext_t): Use sigset_t instead of __sigset_t. * sysdeps/i386/sys/ucontext.h: Do not include , , or . Include instead of . (ucontext_t): Use sigset_t instead of __sigset_t. * sysdeps/m68k/sys/ucontext.h: Do not include , , or . Include instead of . (ucontext_t): Use sigset_t instead of __sigset_t. * sysdeps/mips/sys/ucontext.h: Do not include , , or . Include instead of . (ucontext_t): Use sigset_t instead of __sigset_t. * sysdeps/unix/sysv/linux/aarch64/sys/ucontext.h: Do not include , , or . Include instead of . (ucontext_t): Use sigset_t instead of __sigset_t. * sysdeps/unix/sysv/linux/alpha/sys/ucontext.h: Do not include , , or . Include instead of . (ucontext_t): Use sigset_t instead of __sigset_t. * sysdeps/unix/sysv/linux/arm/sys/ucontext.h: Do not include , , or . Include instead of . (ucontext_t): Use sigset_t instead of __sigset_t. * sysdeps/unix/sysv/linux/hppa/sys/ucontext.h: Do not include , , or . Include instead of . (ucontext_t): Use sigset_t instead of __sigset_t. * sysdeps/unix/sysv/linux/ia64/sys/ucontext.h: Do not include , , or . Include . * sysdeps/unix/sysv/linux/m68k/sys/ucontext.h: Do not include , , or . Include instead of . (ucontext_t): Use sigset_t instead of __sigset_t. * sysdeps/unix/sysv/linux/mips/sys/ucontext.h: Do not include , , or . Include instead of . (ucontext_t): Use sigset_t instead of __sigset_t. * sysdeps/unix/sysv/linux/nios2/sys/ucontext.h: Do not include , , or . Include instead of . (ucontext_t): Use sigset_t instead of __sigset_t. * sysdeps/unix/sysv/linux/powerpc/sys/ucontext.h: Do not include , or . * sysdeps/unix/sysv/linux/s390/sys/ucontext.h: Do not include , , or . Include instead of . (ucontext_t): Use sigset_t instead of __sigset_t. * sysdeps/unix/sysv/linux/sh/sys/ucontext.h: Do not include , , or . Include instead of . (ucontext_t): Use sigset_t instead of __sigset_t. * sysdeps/unix/sysv/linux/sparc/sys/ucontext.h: Do not include , , or . Include instead of . (ucontext_t): Use sigset_t instead of __sigset_t. * sysdeps/unix/sysv/linux/tile/sys/ucontext.h: Do not include , , or . Include instead of . (ucontext_t): Use sigset_t instead of __sigset_t. * sysdeps/unix/sysv/linux/x86/bits/sigcontext.h: Include . * sysdeps/unix/sysv/linux/x86/sys/ucontext.h: Do not include , , or . Include instead of . (ucontext_t): Use sigset_t instead of __sigset_t. --- sysdeps/unix/sysv/linux/aarch64/sys/ucontext.h | 10 ++-------- sysdeps/unix/sysv/linux/alpha/sys/ucontext.h | 10 ++-------- sysdeps/unix/sysv/linux/arm/sys/ucontext.h | 10 ++-------- sysdeps/unix/sysv/linux/hppa/sys/ucontext.h | 10 ++-------- sysdeps/unix/sysv/linux/ia64/sys/ucontext.h | 7 +------ sysdeps/unix/sysv/linux/m68k/sys/ucontext.h | 10 ++-------- sysdeps/unix/sysv/linux/mips/sys/ucontext.h | 10 ++-------- sysdeps/unix/sysv/linux/nios2/sys/ucontext.h | 10 ++-------- sysdeps/unix/sysv/linux/powerpc/sys/ucontext.h | 5 ----- sysdeps/unix/sysv/linux/s390/sys/ucontext.h | 10 ++-------- sysdeps/unix/sysv/linux/sh/sys/ucontext.h | 10 ++-------- sysdeps/unix/sysv/linux/sparc/sys/ucontext.h | 12 +++--------- sysdeps/unix/sysv/linux/tile/sys/ucontext.h | 10 ++-------- sysdeps/unix/sysv/linux/x86/bits/sigcontext.h | 2 ++ sysdeps/unix/sysv/linux/x86/sys/ucontext.h | 12 +++--------- 15 files changed, 29 insertions(+), 109 deletions(-) (limited to 'sysdeps/unix/sysv/linux') diff --git a/sysdeps/unix/sysv/linux/aarch64/sys/ucontext.h b/sysdeps/unix/sysv/linux/aarch64/sys/ucontext.h index 597f9eac2f..16c7acf221 100644 --- a/sysdeps/unix/sysv/linux/aarch64/sys/ucontext.h +++ b/sysdeps/unix/sysv/linux/aarch64/sys/ucontext.h @@ -22,16 +22,10 @@ #define _SYS_UCONTEXT_H 1 #include -#include -/* We need the signal context definitions even if they are not exposed - by . */ -#include +#include #include -#include -#include #include -#include #ifdef __USE_MISC # include @@ -58,7 +52,7 @@ typedef struct ucontext unsigned long uc_flags; struct ucontext *uc_link; stack_t uc_stack; - __sigset_t uc_sigmask; + sigset_t uc_sigmask; mcontext_t uc_mcontext; } ucontext_t; diff --git a/sysdeps/unix/sysv/linux/alpha/sys/ucontext.h b/sysdeps/unix/sysv/linux/alpha/sys/ucontext.h index 4491ff7c81..09e24a1f85 100644 --- a/sysdeps/unix/sysv/linux/alpha/sys/ucontext.h +++ b/sysdeps/unix/sysv/linux/alpha/sys/ucontext.h @@ -19,16 +19,10 @@ #define _SYS_UCONTEXT_H 1 #include -#include -/* We need the signal context definitions even if they are not exposed - by . */ -#include +#include #include -#include -#include #include -#include /* Type for general register. */ @@ -61,7 +55,7 @@ typedef struct ucontext unsigned long __uc_osf_sigmask; stack_t uc_stack; mcontext_t uc_mcontext; - __sigset_t uc_sigmask; + sigset_t uc_sigmask; } ucontext_t; #endif /* sys/ucontext.h */ diff --git a/sysdeps/unix/sysv/linux/arm/sys/ucontext.h b/sysdeps/unix/sysv/linux/arm/sys/ucontext.h index d7c7d9ec47..0ce9b14ba5 100644 --- a/sysdeps/unix/sysv/linux/arm/sys/ucontext.h +++ b/sysdeps/unix/sysv/linux/arm/sys/ucontext.h @@ -21,16 +21,10 @@ #define _SYS_UCONTEXT_H 1 #include -#include -/* We need the signal context definitions even if they are not exposed - by . */ -#include +#include #include -#include -#include #include -#include #ifdef __USE_MISC @@ -113,7 +107,7 @@ typedef struct ucontext struct ucontext *uc_link; stack_t uc_stack; mcontext_t uc_mcontext; - __sigset_t uc_sigmask; + sigset_t uc_sigmask; unsigned long uc_regspace[128] __attribute__((__aligned__(8))); } ucontext_t; diff --git a/sysdeps/unix/sysv/linux/hppa/sys/ucontext.h b/sysdeps/unix/sysv/linux/hppa/sys/ucontext.h index 79b99ff6a2..982b4c44c2 100644 --- a/sysdeps/unix/sysv/linux/hppa/sys/ucontext.h +++ b/sysdeps/unix/sysv/linux/hppa/sys/ucontext.h @@ -21,16 +21,10 @@ #define _SYS_UCONTEXT_H 1 #include -#include -/* We need the signal context definitions even if they are not exposed - by . */ -#include +#include #include -#include -#include #include -#include #ifdef __USE_MISC @@ -67,7 +61,7 @@ typedef struct ucontext struct ucontext *uc_link; stack_t uc_stack; mcontext_t uc_mcontext; - __sigset_t uc_sigmask; + sigset_t uc_sigmask; } ucontext_t; #endif /* sys/ucontext.h */ diff --git a/sysdeps/unix/sysv/linux/ia64/sys/ucontext.h b/sysdeps/unix/sysv/linux/ia64/sys/ucontext.h index 17474a55c7..5ed6929af4 100644 --- a/sysdeps/unix/sysv/linux/ia64/sys/ucontext.h +++ b/sysdeps/unix/sysv/linux/ia64/sys/ucontext.h @@ -19,15 +19,10 @@ #define _SYS_UCONTEXT_H 1 #include -#include -/* We need the signal context definitions even if they are not exposed - by . */ +#include #include -#include -#include #include -#include /* diff --git a/sysdeps/unix/sysv/linux/m68k/sys/ucontext.h b/sysdeps/unix/sysv/linux/m68k/sys/ucontext.h index 62dd96e9f2..0570ec3c3d 100644 --- a/sysdeps/unix/sysv/linux/m68k/sys/ucontext.h +++ b/sysdeps/unix/sysv/linux/m68k/sys/ucontext.h @@ -21,16 +21,10 @@ #define _SYS_UCONTEXT_H 1 #include -#include -/* We need the signal context definitions even if they are not exposed - by . */ -#include +#include #include -#include -#include #include -#include /* Type for general register. */ @@ -120,7 +114,7 @@ typedef struct ucontext stack_t uc_stack; mcontext_t uc_mcontext; unsigned long uc_filler[80]; - __sigset_t uc_sigmask; + sigset_t uc_sigmask; } ucontext_t; #endif /* sys/ucontext.h */ diff --git a/sysdeps/unix/sysv/linux/mips/sys/ucontext.h b/sysdeps/unix/sysv/linux/mips/sys/ucontext.h index 06b45a8726..d15d85dc64 100644 --- a/sysdeps/unix/sysv/linux/mips/sys/ucontext.h +++ b/sysdeps/unix/sysv/linux/mips/sys/ucontext.h @@ -20,16 +20,10 @@ #define _SYS_UCONTEXT_H 1 #include -#include -/* We need the signal context definitions even if they are not exposed - by . */ -#include +#include #include -#include -#include #include -#include #include @@ -113,7 +107,7 @@ typedef struct ucontext struct ucontext *uc_link; stack_t uc_stack; mcontext_t uc_mcontext; - __sigset_t uc_sigmask; + sigset_t uc_sigmask; } ucontext_t; #endif /* sys/ucontext.h */ diff --git a/sysdeps/unix/sysv/linux/nios2/sys/ucontext.h b/sysdeps/unix/sysv/linux/nios2/sys/ucontext.h index 7099b458d4..72ae1a05c7 100644 --- a/sysdeps/unix/sysv/linux/nios2/sys/ucontext.h +++ b/sysdeps/unix/sysv/linux/nios2/sys/ucontext.h @@ -22,16 +22,10 @@ #define _SYS_UCONTEXT_H 1 #include -#include -/* We need the signal context definitions even if they are not exposed - by . */ -#include +#include #include -#include -#include #include -#include /* These definitions must be in sync with the kernel. */ @@ -54,7 +48,7 @@ typedef struct ucontext struct ucontext *uc_link; stack_t uc_stack; mcontext_t uc_mcontext; - __sigset_t uc_sigmask; + sigset_t uc_sigmask; } ucontext_t; #endif /* sys/ucontext.h */ diff --git a/sysdeps/unix/sysv/linux/powerpc/sys/ucontext.h b/sysdeps/unix/sysv/linux/powerpc/sys/ucontext.h index d91a5ac59f..c10741cf53 100644 --- a/sysdeps/unix/sysv/linux/powerpc/sys/ucontext.h +++ b/sysdeps/unix/sysv/linux/powerpc/sys/ucontext.h @@ -20,14 +20,9 @@ #include -/* We need the signal context definitions even if they are not exposed - by . */ #include -#include #include -#include #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 fcbd48ddad..80410fa38c 100644 --- a/sysdeps/unix/sysv/linux/s390/sys/ucontext.h +++ b/sysdeps/unix/sysv/linux/s390/sys/ucontext.h @@ -20,16 +20,10 @@ #define _SYS_UCONTEXT_H 1 #include -#include -/* We need the signal context definitions even if they are not exposed - by in . */ -#include +#include #include -#include -#include #include -#include /* Type for a program status word. */ @@ -84,7 +78,7 @@ typedef struct ucontext struct ucontext *uc_link; stack_t uc_stack; mcontext_t uc_mcontext; - __sigset_t uc_sigmask; + sigset_t uc_sigmask; } ucontext_t; diff --git a/sysdeps/unix/sysv/linux/sh/sys/ucontext.h b/sysdeps/unix/sysv/linux/sh/sys/ucontext.h index cefb918831..7444298957 100644 --- a/sysdeps/unix/sysv/linux/sh/sys/ucontext.h +++ b/sysdeps/unix/sysv/linux/sh/sys/ucontext.h @@ -21,16 +21,10 @@ #define _SYS_UCONTEXT_H 1 #include -#include -/* We need the signal context definitions even if they are not exposed - by . */ -#include +#include #include -#include -#include #include -#include typedef int greg_t; @@ -113,7 +107,7 @@ typedef struct ucontext struct ucontext *uc_link; stack_t uc_stack; mcontext_t uc_mcontext; - __sigset_t uc_sigmask; + sigset_t uc_sigmask; } ucontext_t; #endif /* sys/ucontext.h */ diff --git a/sysdeps/unix/sysv/linux/sparc/sys/ucontext.h b/sysdeps/unix/sysv/linux/sparc/sys/ucontext.h index e859b79c9d..7ce5f2b881 100644 --- a/sysdeps/unix/sysv/linux/sparc/sys/ucontext.h +++ b/sysdeps/unix/sysv/linux/sparc/sys/ucontext.h @@ -19,16 +19,10 @@ #define _SYS_UCONTEXT_H 1 #include -#include -/* We need the signal context definitions even if they are not exposed - by . */ -#include +#include #include -#include -#include #include -#include #include @@ -94,7 +88,7 @@ typedef struct ucontext { unsigned long __uc_sigmask; mcontext_t uc_mcontext; stack_t uc_stack; - __sigset_t uc_sigmask; + sigset_t uc_sigmask; } ucontext_t; #endif /* __WORDISIZE == 64 */ @@ -271,7 +265,7 @@ typedef struct ucontext { unsigned long uc_flags; struct ucontext *uc_link; - __sigset_t uc_sigmask; + sigset_t uc_sigmask; stack_t uc_stack; mcontext_t uc_mcontext; } ucontext_t; diff --git a/sysdeps/unix/sysv/linux/tile/sys/ucontext.h b/sysdeps/unix/sysv/linux/tile/sys/ucontext.h index 4a40e5710f..7e5cf4a831 100644 --- a/sysdeps/unix/sysv/linux/tile/sys/ucontext.h +++ b/sysdeps/unix/sysv/linux/tile/sys/ucontext.h @@ -20,16 +20,10 @@ #define _SYS_UCONTEXT_H 1 #include -#include -/* We need the signal context definitions even if they are not exposed - by . */ -#include +#include #include -#include -#include #include -#include #ifdef __USE_MISC /* Get register type and register names. */ @@ -72,7 +66,7 @@ typedef struct ucontext struct ucontext *uc_link; stack_t uc_stack; mcontext_t uc_mcontext; - __sigset_t uc_sigmask; + sigset_t uc_sigmask; } ucontext_t; #endif /* sys/ucontext.h */ diff --git a/sysdeps/unix/sysv/linux/x86/bits/sigcontext.h b/sysdeps/unix/sysv/linux/x86/bits/sigcontext.h index bc692bcfb1..cff595b94a 100644 --- a/sysdeps/unix/sysv/linux/x86/bits/sigcontext.h +++ b/sysdeps/unix/sysv/linux/x86/bits/sigcontext.h @@ -22,6 +22,8 @@ # error "Never use directly; include instead." #endif +#include + #define FP_XSTATE_MAGIC1 0x46505853U #define FP_XSTATE_MAGIC2 0x46505845U #define FP_XSTATE_MAGIC2_SIZE sizeof(FP_XSTATE_MAGIC2) diff --git a/sysdeps/unix/sysv/linux/x86/sys/ucontext.h b/sysdeps/unix/sysv/linux/x86/sys/ucontext.h index 60a3edfea0..92a698e4b4 100644 --- a/sysdeps/unix/sysv/linux/x86/sys/ucontext.h +++ b/sysdeps/unix/sysv/linux/x86/sys/ucontext.h @@ -19,16 +19,10 @@ #define _SYS_UCONTEXT_H 1 #include -#include -/* We need the signal context definitions even if they are not exposed - by . */ -#include +#include #include -#include -#include #include -#include #ifdef __x86_64__ @@ -142,7 +136,7 @@ typedef struct ucontext struct ucontext *uc_link; stack_t uc_stack; mcontext_t uc_mcontext; - __sigset_t uc_sigmask; + sigset_t uc_sigmask; struct _libc_fpstate __fpregs_mem; } ucontext_t; @@ -243,7 +237,7 @@ typedef struct ucontext struct ucontext *uc_link; stack_t uc_stack; mcontext_t uc_mcontext; - __sigset_t uc_sigmask; + sigset_t uc_sigmask; struct _libc_fpstate __fpregs_mem; } ucontext_t; -- cgit 1.4.1