Use __glibc_reserved convention in mcontext, sigcontext (bug 21457)
Commit Message
This patch implements the most straightforward part of fixing
namespace issues for sys/ucontext.h and related headers: where fields
in sys/ucontext.h or bits/sigcontext.h are named "reserved", "padding"
or similar, they are renamed to use the __glibc_reserved* naming
convention. It does not change fields with a leading underscore, or
even those with a prefix such as uc_ or sc_. It only fixes a small
part of bug 21457, so no XFAILs are removed.
Tested for x86_64 and x86, and with build-many-glibcs.py.
2017-05-03 Joseph Myers <joseph@codesourcery.com>
[BZ #21457]
* sysdeps/unix/sysv/linux/mips/sys/ucontext.h
[_MIPS_SIM != _ABIO32] (mcontext_t): Rename field reserved to
__glibc_reserved1.
* sysdeps/unix/sysv/linux/x86/bits/sigcontext.h
(struct _fpx_sw_bytes): Rename field padding to __glibc_reserved1.
(struct _fpxreg): Likewise.
[!__x86_64__] (struct _fpstate): Rename field reserved to
__glibc_reserved1. Rename field padding to __glibc_reserved2.
[__x86_64__] (struct _fpstate): Rename field padding to
__glibc_reserved1.
(struct _xsave_hdr): Rename field reserved1 to __glibc_reserved1.
Rename field reserved2 to __glibc_reserved2.
* sysdeps/unix/sysv/linux/x86/sys/ucontext.h
[__x86_64__] (struct _libc_fpxreg): Rename field padding to
__glibc_reserved1.
[__x86_64__] (struct _libc_fpstate): Rename field padding to
__glibc_reserved1.
Comments
On 05/03/2017 06:43 PM, Joseph Myers wrote:
> This patch implements the most straightforward part of fixing
> namespace issues for sys/ucontext.h and related headers: where fields
> in sys/ucontext.h or bits/sigcontext.h are named "reserved", "padding"
> or similar, they are renamed to use the __glibc_reserved* naming
> convention. It does not change fields with a leading underscore, or
> even those with a prefix such as uc_ or sc_. It only fixes a small
> part of bug 21457, so no XFAILs are removed.
>
> Tested for x86_64 and x86, and with build-many-glibcs.py.
>
> 2017-05-03 Joseph Myers <joseph@codesourcery.com>
>
> [BZ #21457]
> * sysdeps/unix/sysv/linux/mips/sys/ucontext.h
> [_MIPS_SIM != _ABIO32] (mcontext_t): Rename field reserved to
> __glibc_reserved1.
> * sysdeps/unix/sysv/linux/x86/bits/sigcontext.h
> (struct _fpx_sw_bytes): Rename field padding to __glibc_reserved1.
> (struct _fpxreg): Likewise.
> [!__x86_64__] (struct _fpstate): Rename field reserved to
> __glibc_reserved1. Rename field padding to __glibc_reserved2.
> [__x86_64__] (struct _fpstate): Rename field padding to
> __glibc_reserved1.
> (struct _xsave_hdr): Rename field reserved1 to __glibc_reserved1.
> Rename field reserved2 to __glibc_reserved2.
> * sysdeps/unix/sysv/linux/x86/sys/ucontext.h
> [__x86_64__] (struct _libc_fpxreg): Rename field padding to
> __glibc_reserved1.
> [__x86_64__] (struct _libc_fpstate): Rename field padding to
> __glibc_reserved1.
OK.
I looked to see if gdb used any of the named reserved fields, or if any
other low-level program did, like strace, but I couldn't find any.
@@ -98,7 +98,7 @@ typedef struct
unsigned int fpc_csr;
unsigned int used_math;
unsigned int dsp;
- unsigned int reserved;
+ unsigned int __glibc_reserved1;
} mcontext_t;
#endif
@@ -32,7 +32,7 @@ struct _fpx_sw_bytes
__uint32_t extended_size;
__uint64_t xstate_bv;
__uint32_t xstate_size;
- __uint32_t padding[7];
+ __uint32_t __glibc_reserved1[7];
};
struct _fpreg
@@ -45,7 +45,7 @@ struct _fpxreg
{
unsigned short significand[4];
unsigned short exponent;
- unsigned short padding[3];
+ unsigned short __glibc_reserved1[3];
};
struct _xmmreg
@@ -74,10 +74,10 @@ struct _fpstate
/* FXSR FPU environment. */
__uint32_t _fxsr_env[6];
__uint32_t mxcsr;
- __uint32_t reserved;
+ __uint32_t __glibc_reserved1;
struct _fpxreg _fxsr_st[8];
struct _xmmreg _xmm[8];
- __uint32_t padding[56];
+ __uint32_t __glibc_reserved2[56];
};
#ifndef sigcontext_struct
@@ -131,7 +131,7 @@ struct _fpstate
__uint32_t mxcr_mask;
struct _fpxreg _st[8];
struct _xmmreg _xmm[16];
- __uint32_t padding[24];
+ __uint32_t __glibc_reserved1[24];
};
struct sigcontext
@@ -175,8 +175,8 @@ struct sigcontext
struct _xsave_hdr
{
__uint64_t xstate_bv;
- __uint64_t reserved1[2];
- __uint64_t reserved2[5];
+ __uint64_t __glibc_reserved1[2];
+ __uint64_t __glibc_reserved2[5];
};
struct _ymmh_state
@@ -95,7 +95,7 @@ struct _libc_fpxreg
{
unsigned short int significand[4];
unsigned short int exponent;
- unsigned short int padding[3];
+ unsigned short int __glibc_reserved1[3];
};
struct _libc_xmmreg
@@ -116,7 +116,7 @@ struct _libc_fpstate
__uint32_t mxcr_mask;
struct _libc_fpxreg _st[8];
struct _libc_xmmreg _xmm[16];
- __uint32_t padding[24];
+ __uint32_t __glibc_reserved1[24];
};
/* Structure to describe FPU registers. */