diff options
author | Joseph Myers <joseph@codesourcery.com> | 2017-05-11 14:15:26 +0000 |
---|---|---|
committer | Joseph Myers <joseph@codesourcery.com> | 2017-05-11 14:15:26 +0000 |
commit | 5df4854ed21641e5f82e17677fc385e05480ce3a (patch) | |
tree | fbedb845192c28581f6954ccb4b30d7e9c29e2d6 /sysdeps/i386/sys | |
parent | 0a19a9189678e8719c8423648417b0f44a83fd2c (diff) | |
download | glibc-5df4854ed21641e5f82e17677fc385e05480ce3a.zip glibc-5df4854ed21641e5f82e17677fc385e05480ce3a.tar.gz glibc-5df4854ed21641e5f82e17677fc385e05480ce3a.tar.bz2 |
Condition some sys/ucontext.h contents on __USE_MISC (bug 21457).
Continuing the fixes for namespace issues arising from sys/ucontext.h,
this patch conditions various definitions, that are not needed for
defining mcontext_t / ucontext_t, on __USE_MISC, so they do not appear
in strict POSIX modes.
This patch is non-exhaustive; that is, it only conditions
straightforward cases and there may be more such definitions that can
be conditioned for these and other architectures, to be dealt with
later in separate patches. Also, using __USE_MISC is the minimum
change for these definitions where they conflict with POSIX; some
headers already have __USE_GNU conditionals on similar definitions of
names for registers. The patch specifically does not do anything with
definitions in bits/sigcontext.h, and nor does it condition any
inclusions of bits/sigcontext.h even where in fact that is not needed
on some architectures for the definitions of mcontext_t / ucontext_t.
As other namespace issues in these headers remain, this patch does not
fix bug 21457, nor allow any XFAILs to be removed.
Tested with build-many-glibcs.py.
[BZ #21457]
* sysdeps/arm/sys/ucontext.h (R0): Condition on [__USE_MISC].
(R1): Likewise.
(R2): Likewise.
(R3): Likewise.
(R4): Likewise.
(R5): Likewise.
(R6): Likewise.
(R7): Likewise.
(R8): Likewise.
(R9): Likewise.
(R10): Likewise.
(R11): Likewise.
(R12): Likewise.
(R13): Likewise.
(R14): Likewise.
(R15): Likewise.
* sysdeps/i386/sys/ucontext.h (REG_GS): Likewise.
(REG_FS): Likewise.
(REG_ES): Likewise.
(REG_DS): Likewise.
(REG_EDI): Likewise.
(REG_ESI): Likewise.
(REG_EBP): Likewise.
(REG_ESP): Likewise.
(REG_EBX): Likewise.
(REG_EDX): Likewise.
(REG_ECX): Likewise.
(REG_EAX): Likewise.
(REG_TRAPNO): Likewise.
(REG_ERR): Likewise.
(REG_EIP): Likewise.
(REG_CS): Likewise.
(REG_EFL): Likewise.
(REG_UESP): Likewise.
(REG_SS): Likewise.
* sysdeps/m68k/sys/ucontext.h (R_D0): Likewise.
(R_D1): Likewise.
(R_D2): Likewise.
(R_D3): Likewise.
(R_D4): Likewise.
(R_D5): Likewise.
(R_D6): Likewise.
(R_D7): Likewise.
(R_A0): Likewise.
(R_A1): Likewise.
(R_A2): Likewise.
(R_A3): Likewise.
(R_A4): Likewise.
(R_A5): Likewise.
(R_A6): Likewise.
(R_A7): Likewise.
(R_SP): Likewise.
(R_PC): Likewise.
(R_PS): Likewise.
(fpregset_t): Likewise.
(MCONTEXT_VERSION): Likewise.
* sysdeps/mips/sys/ucontext.h (CTX_R0): Likewise.
(CTX_AT): Likewise.
(CTX_V0): Likewise.
(CTX_V1): Likewise.
(CTX_A0): Likewise.
(CTX_A1): Likewise.
(CTX_A2): Likewise.
(CTX_A3): Likewise.
(CTX_T0): Likewise.
(CTX_T1): Likewise.
(CTX_T2): Likewise.
(CTX_T3): Likewise.
(CTX_T4): Likewise.
(CTX_T5): Likewise.
(CTX_T6): Likewise.
(CTX_T7): Likewise.
(CTX_S0): Likewise.
(CTX_S1): Likewise.
(CTX_S2): Likewise.
(CTX_S3): Likewise.
(CTX_S4): Likewise.
(CTX_S5): Likewise.
(CTX_S6): Likewise.
(CTX_S7): Likewise.
(CTX_T8): Likewise.
(CTX_T9): Likewise.
(CTX_K0): Likewise.
(CTX_K1): Likewise.
(CTX_GP): Likewise.
(CTX_SP): Likewise.
(CTX_S8): Likewise.
(CTX_RA): Likewise.
(CTX_MDLO): Likewise.
(CTX_MDHI): Likewise.
(CTX_CAUSE): Likewise.
(CTX_EPC): Likewise.
* sysdeps/unix/sysv/linux/aarch64/sys/ucontext.h: Condition
inclusion of <sys/procfs.h> on [__USE_MISC].
(greg_t): Condition on [__USE_MISC].
(gregset_t): Likewise.
(fpregset_t): Likewise.
* sysdeps/unix/sysv/linux/arm/sys/ucontext.h (greg_t): Likewise.
(NGREG): Likewise.
(gregset_t): Likewise.
(REG_R0): Likewise.
(REG_R1): Likewise.
(REG_R2): Likewise.
(REG_R3): Likewise.
(REG_R4): Likewise.
(REG_R5): Likewise.
(REG_R6): Likewise.
(REG_R7): Likewise.
(REG_R8): Likewise.
(REG_R9): Likewise.
(REG_R10): Likewise.
(REG_R11): Likewise.
(REG_R12): Likewise.
(REG_R13): Likewise.
(REG_R14): Likewise.
(REG_R15): Likewise.
(struct _libc_fpstate): Likewise.
(fpregset_t): Likewise.
* sysdeps/unix/sysv/linux/hppa/sys/ucontext.h (NGREG): Likewise.
(NFPREG): Likewise.
(gregset_t): Likewise.
(fpregset_t): Likewise.
* sysdeps/unix/sysv/linux/m68k/sys/ucontext.h (R_D0): Likewise.
(R_D1): Likewise.
(R_D2): Likewise.
(R_D3): Likewise.
(R_D4): Likewise.
(R_D5): Likewise.
(R_D6): Likewise.
(R_D7): Likewise.
(R_A0): Likewise.
(R_A1): Likewise.
(R_A2): Likewise.
(R_A3): Likewise.
(R_A4): Likewise.
(R_A5): Likewise.
(R_A6): Likewise.
(R_A7): Likewise.
(R_SP): Likewise.
(R_PC): Likewise.
(R_PS): Likewise.
(fpregset_t): Likewise.
(MCONTEXT_VERSION): Likewise.
* sysdeps/unix/sysv/linux/nios2/sys/ucontext.h (MCONTEXT_VERSION):
Likewise.
* sysdeps/unix/sysv/linux/sh/sys/ucontext.h (REG_R0): Likewise.
(REG_R1): Likewise.
(REG_R2): Likewise.
(REG_R3): Likewise.
(REG_R4): Likewise.
(REG_R5): Likewise.
(REG_R6): Likewise.
(REG_R7): Likewise.
(REG_R8): Likewise.
(REG_R9): Likewise.
(REG_R10): Likewise.
(REG_R11): Likewise.
(REG_R12): Likewise.
(REG_R13): Likewise.
(REG_R14): Likewise.
(REG_R15): Likewise.
* sysdeps/unix/sysv/linux/tile/sys/ucontext.h: Condition inclusion
of <arch/abi.h> on [__USE_MISC].
(greg_t): Condition on [__USE_MISC].
(NGREG): Likewise.
(gregset_t): Likewise.
Diffstat (limited to 'sysdeps/i386/sys')
-rw-r--r-- | sysdeps/i386/sys/ucontext.h | 40 |
1 files changed, 21 insertions, 19 deletions
diff --git a/sysdeps/i386/sys/ucontext.h b/sysdeps/i386/sys/ucontext.h index 055d4aa..c632e50 100644 --- a/sysdeps/i386/sys/ucontext.h +++ b/sysdeps/i386/sys/ucontext.h @@ -38,48 +38,50 @@ typedef int greg_t; /* Container for all general registers. */ typedef greg_t gregset_t[NGREG]; +#ifdef __USE_MISC /* Number of each register is the `gregset_t' array. */ enum { REG_GS = 0, -#define REG_GS REG_GS +# define REG_GS REG_GS REG_FS, -#define REG_FS REG_FS +# define REG_FS REG_FS REG_ES, -#define REG_ES REG_ES +# define REG_ES REG_ES REG_DS, -#define REG_DS REG_DS +# define REG_DS REG_DS REG_EDI, -#define REG_EDI REG_EDI +# define REG_EDI REG_EDI REG_ESI, -#define REG_ESI REG_ESI +# define REG_ESI REG_ESI REG_EBP, -#define REG_EBP REG_EBP +# define REG_EBP REG_EBP REG_ESP, -#define REG_ESP REG_ESP +# define REG_ESP REG_ESP REG_EBX, -#define REG_EBX REG_EBX +# define REG_EBX REG_EBX REG_EDX, -#define REG_EDX REG_EDX +# define REG_EDX REG_EDX REG_ECX, -#define REG_ECX REG_ECX +# define REG_ECX REG_ECX REG_EAX, -#define REG_EAX REG_EAX +# define REG_EAX REG_EAX REG_TRAPNO, -#define REG_TRAPNO REG_TRAPNO +# define REG_TRAPNO REG_TRAPNO REG_ERR, -#define REG_ERR REG_ERR +# define REG_ERR REG_ERR REG_EIP, -#define REG_EIP REG_EIP +# define REG_EIP REG_EIP REG_CS, -#define REG_CS REG_CS +# define REG_CS REG_CS REG_EFL, -#define REG_EFL REG_EFL +# define REG_EFL REG_EFL REG_UESP, -#define REG_UESP REG_UESP +# define REG_UESP REG_UESP REG_SS -#define REG_SS REG_SS +# define REG_SS REG_SS }; +#endif /* Structure to describe FPU registers. */ typedef struct fpregset |