This is the mail archive of the
glibc-cvs@sourceware.org
mailing list for the glibc project.
GNU C Library master sources branch master updated. glibc-2.25-381-g139904b
- From: jsm28 at sourceware dot org
- To: glibc-cvs at sourceware dot org
- Date: 1 Jun 2017 14:08:04 -0000
- Subject: GNU C Library master sources branch master updated. glibc-2.25-381-g139904b
This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "GNU C Library master sources".
The branch, master has been updated
via 139904b7e454b1232dc7807dd613682d107daab1 (commit)
from 491bb0858e2d7edc36ced616e846803671d8db75 (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
- Log -----------------------------------------------------------------
http://sourceware.org/git/gitweb.cgi?p=glibc.git;a=commitdiff;h=139904b7e454b1232dc7807dd613682d107daab1
commit 139904b7e454b1232dc7807dd613682d107daab1
Author: Joseph Myers <joseph@codesourcery.com>
Date: Thu Jun 1 14:07:40 2017 +0000
Fix more namespace issues in sys/ucontext.h (bug 21457).
Continuing the fixes for namespace issues in sys/ucontext.h, this
patch moves various symbols into the implementation namespace in the
absence of __USE_MISC. As with previous changes, it is nonexhaustive,
just covering more straightforward cases.
Structure fields are generally changed to have a prefix __ in the
absence of __USE_MISC, via a macro __ctx (used without a space before
the open parenthesis, since the result is a single identifier).
Various macros such as NGREG also have leading __ added. No changes
are made to structure tags (and thus to C++ name mangling), except
that in the (unused) file sysdeps/i386/sys/ucontext.h, structures
defined inside other structures as the type for a field have their
tags removed in the non-__USE_MISC case (those structure tags would
not in any case have been visible in C++, because in C++ the scope of
such a tag is limited to the containing structure). No changes are
made to the contents of bits/sigcontext.h, or to whether it is
included. Because of remaining namespace issues, this patch does not
yet fix the bug or allow any XFAILs to be removed.
Tested for x86_64 and x86, and with build-many-glibcs.py.
[BZ #21457]
* sysdeps/arm/sys/ucontext.h (NGREG): Rename to __NGREG and define
NGREG to __NGREG if [__USE_MISC].
(gregset_t): Define using __NGREG.
(__ctx): New macro.
(mcontext_t): Use __ctx in defining fields.
* sysdeps/i386/sys/ucontext.h (NGREG): Rename to __NGREG and
define NGREG to __NGREG if [__USE_MISC].
(gregset_t): Define using __NGREG.
(__ctx): New macro.
(__ctxt): Likewise.
(fpregset_t): Use __ctx and __ctxt in defining fields.
(mcontext_t): Likewise.
* sysdeps/m68k/sys/ucontext.h (NGREG): Rename to __NGREG and
define NGREG to __NGREG if [__USE_MISC].
(gregset_t): Define using __NGREG.
(__ctx): New macro.
(mcontext_t): Use __ctx in defining fields.
* sysdeps/mips/sys/ucontext.h (NGREG): Rename to __NGREG and
define NGREG to __NGREG if [__USE_MISC].
(gregset_t): Define using __NGREG.
(__ctx): New macro.
(fpregset_t): Use __ctx in defining fields.
(mcontext_t): Likewise.
* sysdeps/unix/sysv/linux/alpha/sys/ucontext.h (NGREG): Rename to
__NGREG and define NGREG to __NGREG if [__USE_MISC].
(gregset_t): Define using __NGREG.
(NFPREG): Rename to __NFPREG and define NFPREG to __NFPREG if
[__USE_MISC].
(fpregset_t): Define using __NFPREG.
* sysdeps/unix/sysv/linux/m68k/sys/ucontext.h (NGREG): Rename to
__NGREG and define NGREG to __NGREG if [__USE_MISC].
(gregset_t): Define using __NGREG.
(__ctx): New macro.
(fpregset_t): Use __ctx in defining fields.
(mcontext_t): Likewise.
* sysdeps/unix/sysv/linux/mips/sys/ucontext.h (NGREG): Rename to
__NGREG and define NGREG to __NGREG if [__USE_MISC].
(NFPREG): Rename to __NFPREG and define NFPREG to __NFPREG if
[__USE_MISC].
(gregset_t): Define using __NGREG.
(__ctx): New macro.
(fpregset_t): Use __ctx in defining fields.
(mcontext_t): Likewise.
* sysdeps/unix/sysv/linux/nios2/sys/ucontext.h (__ctx): New macro.
(mcontext_t): Use __ctx in defining fields.
* sysdeps/unix/sysv/linux/powerpc/sys/ucontext.h (__ctx): New
macro.
[__WORDSIZE == 32] (NGREG): Rename to __NGREG and define NGREG to
__NGREG if [__USE_MISC].
[__WORDSIZE == 32] (gregset_t): Define using __NGREG.
[__WORDSIZE == 32] (fpregset_t): Use __ctx in defining fields.
(mcontext_t): Likewise.
[__WORDSIZE != 32] (NGREG): Rename to __NGREG and define NGREG to
__NGREG if [__USE_MISC].
[__WORDSIZE != 32] (NFPREG): Rename to __NFPREG and define NFPREG
to __NFPREG if [__USE_MISC].
[__WORDSIZE != 32] (NVRREG): Rename to __NVRREG and define NVRREG
to __NVRREG if [__USE_MISC].
[__WORDSIZE != 32] (gregset_t): Define using __NGREG.
[__WORDSIZE != 32] (fpregset_t): Define using __NFPREG.
[__WORDSIZE != 32] (vscr_t): Use __ctx in defining fields.
[__WORDSIZE != 32] (vrregset_t): Likewise.
[__WORDSIZE != 32] (mcontext_t): Likewise.
* sysdeps/unix/sysv/linux/s390/sys/ucontext.h (__ctx): New macro.
(__psw_t): Use __ctx in defining fields.
(NGREG): Rename to __NGREG and define NGREG to __NGREG if
[__USE_MISC].
(gregset_t): Define using __NGREG.
(fpreg_t): Use __ctx in defining fields.
(fpregset_t): Likewise.
(mcontext_t): Likewise.
* sysdeps/unix/sysv/linux/sh/sys/ucontext.h (NGREG): Rename to
__NGREG and define NGREG to __NGREG if [__USE_MISC].
(gregset_t): Define using __NGREG.
(NFPREG): Rename to __NFPREG and define NFPREG to __NFPREG if
[__USE_MISC].
(fpregset_t): Define using __NFPREG.
(__ctx): New macro.
(mcontext_t): Use __ctx in defining fields.
* sysdeps/unix/sysv/linux/x86/sys/ucontext.h (__ctx): New macro.
[__x86_64__] (NGREG): Rename to __NGREG and define NGREG to
__NGREG if [__USE_MISC].
[__x86_64__] (gregset_t): Define using __NGREG.
[__x86_64__] (struct _libc_fpxreg): Use __ctx in defining fields.
[__x86_64__] (struct _libc_fpstate): Likewise.
[__x86_64__] (mcontext_t): Likewise.
[!__x86_64__] (NGREG): Rename to __NGREG and define NGREG to
__NGREG if [__USE_MISC].
[!__x86_64__] (gregset_t): Define using __NGREG.
[!__x86_64__] (struct _libc_fpreg): Use __ctx in defining fields.
[!__x86_64__] (struct _libc_fpstate): Likewise.
[!__x86_64__] (mcontext_t): Likewise.
diff --git a/ChangeLog b/ChangeLog
index d0bed8a..d56331a 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,99 @@
+2017-06-01 Joseph Myers <joseph@codesourcery.com>
+
+ [BZ #21457]
+ * sysdeps/arm/sys/ucontext.h (NGREG): Rename to __NGREG and define
+ NGREG to __NGREG if [__USE_MISC].
+ (gregset_t): Define using __NGREG.
+ (__ctx): New macro.
+ (mcontext_t): Use __ctx in defining fields.
+ * sysdeps/i386/sys/ucontext.h (NGREG): Rename to __NGREG and
+ define NGREG to __NGREG if [__USE_MISC].
+ (gregset_t): Define using __NGREG.
+ (__ctx): New macro.
+ (__ctxt): Likewise.
+ (fpregset_t): Use __ctx and __ctxt in defining fields.
+ (mcontext_t): Likewise.
+ * sysdeps/m68k/sys/ucontext.h (NGREG): Rename to __NGREG and
+ define NGREG to __NGREG if [__USE_MISC].
+ (gregset_t): Define using __NGREG.
+ (__ctx): New macro.
+ (mcontext_t): Use __ctx in defining fields.
+ * sysdeps/mips/sys/ucontext.h (NGREG): Rename to __NGREG and
+ define NGREG to __NGREG if [__USE_MISC].
+ (gregset_t): Define using __NGREG.
+ (__ctx): New macro.
+ (fpregset_t): Use __ctx in defining fields.
+ (mcontext_t): Likewise.
+ * sysdeps/unix/sysv/linux/alpha/sys/ucontext.h (NGREG): Rename to
+ __NGREG and define NGREG to __NGREG if [__USE_MISC].
+ (gregset_t): Define using __NGREG.
+ (NFPREG): Rename to __NFPREG and define NFPREG to __NFPREG if
+ [__USE_MISC].
+ (fpregset_t): Define using __NFPREG.
+ * sysdeps/unix/sysv/linux/m68k/sys/ucontext.h (NGREG): Rename to
+ __NGREG and define NGREG to __NGREG if [__USE_MISC].
+ (gregset_t): Define using __NGREG.
+ (__ctx): New macro.
+ (fpregset_t): Use __ctx in defining fields.
+ (mcontext_t): Likewise.
+ * sysdeps/unix/sysv/linux/mips/sys/ucontext.h (NGREG): Rename to
+ __NGREG and define NGREG to __NGREG if [__USE_MISC].
+ (NFPREG): Rename to __NFPREG and define NFPREG to __NFPREG if
+ [__USE_MISC].
+ (gregset_t): Define using __NGREG.
+ (__ctx): New macro.
+ (fpregset_t): Use __ctx in defining fields.
+ (mcontext_t): Likewise.
+ * sysdeps/unix/sysv/linux/nios2/sys/ucontext.h (__ctx): New macro.
+ (mcontext_t): Use __ctx in defining fields.
+ * sysdeps/unix/sysv/linux/powerpc/sys/ucontext.h (__ctx): New
+ macro.
+ [__WORDSIZE == 32] (NGREG): Rename to __NGREG and define NGREG to
+ __NGREG if [__USE_MISC].
+ [__WORDSIZE == 32] (gregset_t): Define using __NGREG.
+ [__WORDSIZE == 32] (fpregset_t): Use __ctx in defining fields.
+ (mcontext_t): Likewise.
+ [__WORDSIZE != 32] (NGREG): Rename to __NGREG and define NGREG to
+ __NGREG if [__USE_MISC].
+ [__WORDSIZE != 32] (NFPREG): Rename to __NFPREG and define NFPREG
+ to __NFPREG if [__USE_MISC].
+ [__WORDSIZE != 32] (NVRREG): Rename to __NVRREG and define NVRREG
+ to __NVRREG if [__USE_MISC].
+ [__WORDSIZE != 32] (gregset_t): Define using __NGREG.
+ [__WORDSIZE != 32] (fpregset_t): Define using __NFPREG.
+ [__WORDSIZE != 32] (vscr_t): Use __ctx in defining fields.
+ [__WORDSIZE != 32] (vrregset_t): Likewise.
+ [__WORDSIZE != 32] (mcontext_t): Likewise.
+ * sysdeps/unix/sysv/linux/s390/sys/ucontext.h (__ctx): New macro.
+ (__psw_t): Use __ctx in defining fields.
+ (NGREG): Rename to __NGREG and define NGREG to __NGREG if
+ [__USE_MISC].
+ (gregset_t): Define using __NGREG.
+ (fpreg_t): Use __ctx in defining fields.
+ (fpregset_t): Likewise.
+ (mcontext_t): Likewise.
+ * sysdeps/unix/sysv/linux/sh/sys/ucontext.h (NGREG): Rename to
+ __NGREG and define NGREG to __NGREG if [__USE_MISC].
+ (gregset_t): Define using __NGREG.
+ (NFPREG): Rename to __NFPREG and define NFPREG to __NFPREG if
+ [__USE_MISC].
+ (fpregset_t): Define using __NFPREG.
+ (__ctx): New macro.
+ (mcontext_t): Use __ctx in defining fields.
+ * sysdeps/unix/sysv/linux/x86/sys/ucontext.h (__ctx): New macro.
+ [__x86_64__] (NGREG): Rename to __NGREG and define NGREG to
+ __NGREG if [__USE_MISC].
+ [__x86_64__] (gregset_t): Define using __NGREG.
+ [__x86_64__] (struct _libc_fpxreg): Use __ctx in defining fields.
+ [__x86_64__] (struct _libc_fpstate): Likewise.
+ [__x86_64__] (mcontext_t): Likewise.
+ [!__x86_64__] (NGREG): Rename to __NGREG and define NGREG to
+ __NGREG if [__USE_MISC].
+ [!__x86_64__] (gregset_t): Define using __NGREG.
+ [!__x86_64__] (struct _libc_fpreg): Use __ctx in defining fields.
+ [!__x86_64__] (struct _libc_fpstate): Likewise.
+ [!__x86_64__] (mcontext_t): Likewise.
+
2017-06-01 Zack Weinberg <zackw@panix.com>
* sysdeps/unix/sysv/linux/microblaze/pt-vfork.S: Don't include
diff --git a/sysdeps/arm/sys/ucontext.h b/sysdeps/arm/sys/ucontext.h
index 37277f0..722300a 100644
--- a/sysdeps/arm/sys/ucontext.h
+++ b/sysdeps/arm/sys/ucontext.h
@@ -30,10 +30,13 @@
typedef int greg_t;
/* Number of general registers. */
-#define NGREG 16
+#define __NGREG 16
+#ifdef __USE_MISC
+# define NGREG __NGREG
+#endif
/* Container for all general registers. */
-typedef greg_t gregset_t[NGREG];
+typedef greg_t gregset_t[__NGREG];
#ifdef __USE_MISC
/* Number of each register is the `gregset_t' array. */
@@ -74,6 +77,12 @@ enum
};
#endif
+#ifdef __USE_MISC
+# define __ctx(fld) fld
+#else
+# define __ctx(fld) __ ## fld
+#endif
+
/* Structure to describe FPU registers. */
typedef struct fpregset
{
@@ -82,10 +91,12 @@ typedef struct fpregset
/* Context to describe whole processor state. */
typedef struct
{
- gregset_t gregs;
- fpregset_t fpregs;
+ gregset_t __ctx(gregs);
+ fpregset_t __ctx(fpregs);
} mcontext_t;
+#undef __ctx
+
/* Userlevel context. */
typedef struct ucontext
{
diff --git a/sysdeps/i386/sys/ucontext.h b/sysdeps/i386/sys/ucontext.h
index a6b936a..fb5df11 100644
--- a/sysdeps/i386/sys/ucontext.h
+++ b/sysdeps/i386/sys/ucontext.h
@@ -31,10 +31,13 @@
typedef int greg_t;
/* Number of general registers. */
-#define NGREG 19
+#define __NGREG 19
+#ifdef __USE_MISC
+# define NGREG __NGREG
+#endif
/* Container for all general registers. */
-typedef greg_t gregset_t[NGREG];
+typedef greg_t gregset_t[__NGREG];
#ifdef __USE_MISC
/* Number of each register is the `gregset_t' array. */
@@ -81,36 +84,47 @@ enum
};
#endif
+#ifdef __USE_MISC
+# define __ctx(fld) fld
+# define __ctxt(tag) tag
+#else
+# define __ctx(fld) __ ## fld
+# define __ctxt(tag) /* Empty. */
+#endif
+
/* Structure to describe FPU registers. */
typedef struct fpregset
{
union
{
- struct fpchip_state
+ struct __ctxt(fpchip_state)
{
- int state[27];
- int status;
- } fpchip_state;
+ int __ctx(state)[27];
+ int __ctx(status);
+ } __ctx(fpchip_state);
- struct fp_emul_space
+ struct __ctxt(fp_emul_space)
{
- char fp_emul[246];
- char fp_epad[2];
- } fp_emul_space;
+ char __ctx(fp_emul)[246];
+ char __ctx(fp_epad)[2];
+ } __ctx(fp_emul_space);
- int f_fpregs[62];
- } fp_reg_set;
+ int __ctx(f_fpregs)[62];
+ } __ctx(fp_reg_set);
- long int f_wregs[33];
+ long int __ctx(f_wregs)[33];
} fpregset_t;
/* Context to describe whole processor state. */
typedef struct
{
- gregset_t gregs;
- fpregset_t fpregs;
+ gregset_t __ctx(gregs);
+ fpregset_t __ctx(fpregs);
} mcontext_t;
+#undef __ctx
+#undef __ctxt
+
/* Userlevel context. */
typedef struct ucontext
{
diff --git a/sysdeps/m68k/sys/ucontext.h b/sysdeps/m68k/sys/ucontext.h
index 2b70e72..a742aaf 100644
--- a/sysdeps/m68k/sys/ucontext.h
+++ b/sysdeps/m68k/sys/ucontext.h
@@ -31,10 +31,13 @@
typedef int greg_t;
/* Number of general registers. */
-#define NGREG 18
+#define __NGREG 18
+#ifdef __USE_MISC
+# define NGREG __NGREG
+#endif
/* Container for all general registers. */
-typedef greg_t gregset_t[NGREG];
+typedef greg_t gregset_t[__NGREG];
#ifdef __USE_MISC
/* Number of each register is the `gregset_t' array. */
@@ -90,13 +93,21 @@ typedef struct fpregset
} fpregset_t;
#endif
+#ifdef __USE_MISC
+# define __ctx(fld) fld
+#else
+# define __ctx(fld) __ ## fld
+#endif
+
/* Context to describe whole processor state. */
typedef struct
{
- int version;
- gregset_t gregs;
+ int __ctx(version);
+ gregset_t __ctx(gregs);
} mcontext_t;
+#undef __ctx
+
#ifdef __USE_MISC
# define MCONTEXT_VERSION 1
#endif
diff --git a/sysdeps/mips/sys/ucontext.h b/sysdeps/mips/sys/ucontext.h
index ebc0609..4bc1bc1 100644
--- a/sysdeps/mips/sys/ucontext.h
+++ b/sysdeps/mips/sys/ucontext.h
@@ -37,10 +37,13 @@ typedef __uint64_t greg_t;
#endif
/* Number of general registers. */
-#define NGREG 36
+#define __NGREG 36
+#ifdef __USE_MISC
+# define NGREG __NGREG
+#endif
/* Container for all general registers. */
-typedef greg_t gregset_t[NGREG];
+typedef greg_t gregset_t[__NGREG];
#ifdef __USE_MISC
/* Number of each register is the `gregset_t' array. */
@@ -121,32 +124,40 @@ enum
};
#endif
+#ifdef __USE_MISC
+# define __ctx(fld) fld
+#else
+# define __ctx(fld) __ ## fld
+#endif
+
/* Structure to describe FPU registers. */
typedef struct fpregset
{
union
{
#if _MIPS_SIM == _ABIO32
- double fp_dregs[16];
- float fp_fregs[32];
- unsigned int fp_regs[32];
+ double __ctx(fp_dregs)[16];
+ float __ctx(fp_fregs)[32];
+ unsigned int __ctx(fp_regs)[32];
#else
- double fp_dregs[32];
- /* float fp_fregs[32]; */
- __uint64_t fp_regs[32];
+ double __ctx(fp_dregs)[32];
+ /* float __ctx(fp_fregs)[32]; */
+ __uint64_t __ctx(fp_regs)[32];
#endif
- } fp_r;
- unsigned int fp_csr;
- unsigned int fp_pad;
+ } __ctx(fp_r);
+ unsigned int __ctx(fp_csr);
+ unsigned int __ctx(fp_pad);
} fpregset_t;
/* Context to describe whole processor state. */
typedef struct
{
- gregset_t gpregs;
- fpregset_t fpregs;
+ gregset_t __ctx(gpregs);
+ fpregset_t __ctx(fpregs);
} mcontext_t;
+#undef __ctx
+
/* Userlevel context. */
typedef struct ucontext
{
diff --git a/sysdeps/unix/sysv/linux/alpha/sys/ucontext.h b/sysdeps/unix/sysv/linux/alpha/sys/ucontext.h
index 09e24a1..b9e5903 100644
--- a/sysdeps/unix/sysv/linux/alpha/sys/ucontext.h
+++ b/sysdeps/unix/sysv/linux/alpha/sys/ucontext.h
@@ -29,19 +29,25 @@
typedef long int greg_t;
/* Number of general registers. */
-#define NGREG 33
+#define __NGREG 33
+#ifdef __USE_MISC
+# define NGREG __NGREG
+#endif
/* Container for all general registers. */
-typedef greg_t gregset_t[NGREG];
+typedef greg_t gregset_t[__NGREG];
/* Type for floating-point register. */
typedef long int fpreg_t;
/* Number of general registers. */
-#define NFPREG 32
+#define __NFPREG 32
+#ifdef __USE_MISC
+# define NFPREG __NFPREG
+#endif
/* Container for all general registers. */
-typedef fpreg_t fpregset_t[NFPREG];
+typedef fpreg_t fpregset_t[__NFPREG];
/* A machine context is exactly a sigcontext. */
diff --git a/sysdeps/unix/sysv/linux/m68k/sys/ucontext.h b/sysdeps/unix/sysv/linux/m68k/sys/ucontext.h
index 0570ec3..e6ecbe6 100644
--- a/sysdeps/unix/sysv/linux/m68k/sys/ucontext.h
+++ b/sysdeps/unix/sysv/linux/m68k/sys/ucontext.h
@@ -31,10 +31,13 @@
typedef int greg_t;
/* Number of general registers. */
-#define NGREG 18
+#define __NGREG 18
+#ifdef __USE_MISC
+# define NGREG __NGREG
+#endif
/* Container for all general registers. */
-typedef greg_t gregset_t[NGREG];
+typedef greg_t gregset_t[__NGREG];
#ifdef __USE_MISC
/* Number of each register is the `gregset_t' array. */
@@ -81,27 +84,35 @@ enum
};
#endif
+#ifdef __USE_MISC
+# define __ctx(fld) fld
+#else
+# define __ctx(fld) __ ## fld
+#endif
+
/* Structure to describe FPU registers. */
typedef struct fpregset
{
- int f_pcr;
- int f_psr;
- int f_fpiaddr;
+ int __ctx(f_pcr);
+ int __ctx(f_psr);
+ int __ctx(f_fpiaddr);
#ifdef __mcoldfire__
- int f_fpregs[8][2];
+ int __ctx(f_fpregs)[8][2];
#else
- int f_fpregs[8][3];
+ int __ctx(f_fpregs)[8][3];
#endif
} fpregset_t;
/* Context to describe whole processor state. */
typedef struct
{
- int version;
- gregset_t gregs;
- fpregset_t fpregs;
+ int __ctx(version);
+ gregset_t __ctx(gregs);
+ fpregset_t __ctx(fpregs);
} mcontext_t;
+#undef __ctx
+
#ifdef __USE_MISC
# define MCONTEXT_VERSION 2
#endif
diff --git a/sysdeps/unix/sysv/linux/mips/sys/ucontext.h b/sysdeps/unix/sysv/linux/mips/sys/ucontext.h
index d15d85d..048e9a4 100644
--- a/sysdeps/unix/sysv/linux/mips/sys/ucontext.h
+++ b/sysdeps/unix/sysv/linux/mips/sys/ucontext.h
@@ -33,21 +33,31 @@
__extension__ typedef unsigned long long int greg_t;
/* Number of general registers. */
-#define NGREG 32
-#define NFPREG 32
+#define __NGREG 32
+#define __NFPREG 32
+#ifdef __USE_MISC
+# define NGREG __NGREG
+# define NFPREG __NFPREG
+#endif
/* Container for all general registers. */
-typedef greg_t gregset_t[NGREG];
+typedef greg_t gregset_t[__NGREG];
+
+#ifdef __USE_MISC
+# define __ctx(fld) fld
+#else
+# define __ctx(fld) __ ## fld
+#endif
/* Container for all FPU registers. */
typedef struct fpregset {
union {
- double fp_dregs[NFPREG];
+ double __ctx(fp_dregs)[__NFPREG];
struct {
float _fp_fregs;
unsigned int _fp_pad;
- } fp_fregs[NFPREG];
- } fp_r;
+ } __ctx(fp_fregs)[__NFPREG];
+ } __ctx(fp_r);
} fpregset_t;
@@ -60,46 +70,48 @@ typedef struct fpregset {
still be rectified. */
typedef struct
{
- unsigned int regmask;
- unsigned int status;
- greg_t pc;
- gregset_t gregs;
- fpregset_t fpregs;
- unsigned int fp_owned;
- unsigned int fpc_csr;
- unsigned int fpc_eir;
- unsigned int used_math;
- unsigned int dsp;
- greg_t mdhi;
- greg_t mdlo;
- unsigned long hi1;
- unsigned long lo1;
- unsigned long hi2;
- unsigned long lo2;
- unsigned long hi3;
- unsigned long lo3;
+ unsigned int __ctx(regmask);
+ unsigned int __ctx(status);
+ greg_t __ctx(pc);
+ gregset_t __ctx(gregs);
+ fpregset_t __ctx(fpregs);
+ unsigned int __ctx(fp_owned);
+ unsigned int __ctx(fpc_csr);
+ unsigned int __ctx(fpc_eir);
+ unsigned int __ctx(used_math);
+ unsigned int __ctx(dsp);
+ greg_t __ctx(mdhi);
+ greg_t __ctx(mdlo);
+ unsigned long __ctx(hi1);
+ unsigned long __ctx(lo1);
+ unsigned long __ctx(hi2);
+ unsigned long __ctx(lo2);
+ unsigned long __ctx(hi3);
+ unsigned long __ctx(lo3);
} mcontext_t;
#else
typedef struct
{
- gregset_t gregs;
- fpregset_t fpregs;
- greg_t mdhi;
- greg_t hi1;
- greg_t hi2;
- greg_t hi3;
- greg_t mdlo;
- greg_t lo1;
- greg_t lo2;
- greg_t lo3;
- greg_t pc;
- unsigned int fpc_csr;
- unsigned int used_math;
- unsigned int dsp;
+ gregset_t __ctx(gregs);
+ fpregset_t __ctx(fpregs);
+ greg_t __ctx(mdhi);
+ greg_t __ctx(hi1);
+ greg_t __ctx(hi2);
+ greg_t __ctx(hi3);
+ greg_t __ctx(mdlo);
+ greg_t __ctx(lo1);
+ greg_t __ctx(lo2);
+ greg_t __ctx(lo3);
+ greg_t __ctx(pc);
+ unsigned int __ctx(fpc_csr);
+ unsigned int __ctx(used_math);
+ unsigned int __ctx(dsp);
unsigned int __glibc_reserved1;
} mcontext_t;
#endif
+#undef __ctx
+
/* Userlevel context. */
typedef struct ucontext
{
diff --git a/sysdeps/unix/sysv/linux/nios2/sys/ucontext.h b/sysdeps/unix/sysv/linux/nios2/sys/ucontext.h
index 72ae1a0..af8d75c 100644
--- a/sysdeps/unix/sysv/linux/nios2/sys/ucontext.h
+++ b/sysdeps/unix/sysv/linux/nios2/sys/ucontext.h
@@ -34,13 +34,21 @@
# define MCONTEXT_VERSION 2
#endif
+#ifdef __USE_MISC
+# define __ctx(fld) fld
+#else
+# define __ctx(fld) __ ## fld
+#endif
+
/* Context to describe whole processor state. */
typedef struct mcontext
{
- int version;
- unsigned long regs[32];
+ int __ctx(version);
+ unsigned long __ctx(regs)[32];
} mcontext_t;
+#undef __ctx
+
/* Userlevel context. */
typedef struct ucontext
{
diff --git a/sysdeps/unix/sysv/linux/powerpc/sys/ucontext.h b/sysdeps/unix/sysv/linux/powerpc/sys/ucontext.h
index c10741c..b460f23 100644
--- a/sysdeps/unix/sysv/linux/powerpc/sys/ucontext.h
+++ b/sysdeps/unix/sysv/linux/powerpc/sys/ucontext.h
@@ -25,19 +25,28 @@
#include <bits/types/stack_t.h>
+#ifdef __USE_MISC
+# define __ctx(fld) fld
+#else
+# define __ctx(fld) __ ## fld
+#endif
+
#if __WORDSIZE == 32
/* Number of general registers. */
-# define NGREG 48
+# define __NGREG 48
+# ifdef __USE_MISC
+# define NGREG __NGREG
+# endif
/* Container for all general registers. */
-typedef unsigned long gregset_t[NGREG];
+typedef unsigned long gregset_t[__NGREG];
/* Container for floating-point registers and status */
typedef struct _libc_fpstate
{
- double fpregs[32];
- double fpscr;
+ double __ctx(fpregs)[32];
+ double __ctx(fpscr);
unsigned int _pad[2];
} fpregset_t;
@@ -45,18 +54,18 @@ typedef struct _libc_fpstate
Needs to be aligned on a 16-byte boundary. */
typedef struct _libc_vrstate
{
- unsigned int vrregs[32][4];
- unsigned int vrsave;
+ unsigned int __ctx(vrregs)[32][4];
+ unsigned int __ctx(vrsave);
unsigned int _pad[2];
- unsigned int vscr;
+ unsigned int __ctx(vscr);
} vrregset_t;
/* Context to describe whole processor state. */
typedef struct
{
- gregset_t gregs;
- fpregset_t fpregs;
- vrregset_t vrregs __attribute__((__aligned__(16)));
+ gregset_t __ctx(gregs);
+ fpregset_t __ctx(fpregs);
+ vrregset_t __ctx(vrregs) __attribute__((__aligned__(16)));
} mcontext_t;
#else
@@ -70,12 +79,18 @@ typedef struct
* is set in AT_HWCAP. */
/* Number of general registers. */
-# define NGREG 48 /* includes r0-r31, nip, msr, lr, etc. */
-# define NFPREG 33 /* includes fp0-fp31 &fpscr. */
-# define NVRREG 34 /* includes v0-v31, vscr, & vrsave in split vectors */
-
-typedef unsigned long gregset_t[NGREG];
-typedef double fpregset_t[NFPREG];
+# define __NGREG 48 /* includes r0-r31, nip, msr, lr, etc. */
+# define __NFPREG 33 /* includes fp0-fp31 &fpscr. */
+# define __NVRREG 34 /* includes v0-v31, vscr, & vrsave in
+ split vectors */
+# ifdef __USE_MISC
+# define NGREG __NGREG
+# define NFPREG __NFPREG
+# define NVRREG __NVRREG
+# endif
+
+typedef unsigned long gregset_t[__NGREG];
+typedef double fpregset_t[__NFPREG];
/* Container for Altivec/VMX Vector Status and Control Register. Only 32-bits
but can only be copied to/from a 128-bit vector register. So we allocated
@@ -83,28 +98,28 @@ typedef double fpregset_t[NFPREG];
typedef struct _libc_vscr
{
unsigned int __pad[3];
- unsigned int vscr_word;
+ unsigned int __ctx(vscr_word);
} vscr_t;
/* Container for Altivec/VMX registers and status.
Must to be aligned on a 16-byte boundary. */
typedef struct _libc_vrstate
{
- unsigned int vrregs[32][4];
- vscr_t vscr;
- unsigned int vrsave;
+ unsigned int __ctx(vrregs)[32][4];
+ vscr_t __ctx(vscr);
+ unsigned int __ctx(vrsave);
unsigned int __pad[3];
} vrregset_t __attribute__((__aligned__(16)));
typedef struct {
unsigned long __glibc_reserved[4];
- int signal;
+ int __ctx(signal);
int __pad0;
- unsigned long handler;
- unsigned long oldmask;
- struct pt_regs *regs;
- gregset_t gp_regs;
- fpregset_t fp_regs;
+ unsigned long __ctx(handler);
+ unsigned long __ctx(oldmask);
+ struct pt_regs *__ctx(regs);
+ gregset_t __ctx(gp_regs);
+ fpregset_t __ctx(fp_regs);
/*
* To maintain compatibility with current implementations the sigcontext is
* extended by appending a pointer (v_regs) to a quadword type (elf_vrreg_t)
@@ -124,12 +139,14 @@ typedef struct {
* The entry with index 33 contains the vrsave as the first word (offset 0)
* within the quadword.
*/
- vrregset_t *v_regs;
- long vmx_reserve[NVRREG+NVRREG+1];
+ vrregset_t *__ctx(v_regs);
+ long __ctx(vmx_reserve)[__NVRREG+__NVRREG+1];
} mcontext_t;
#endif
+#undef __ctx
+
/* Userlevel context. */
typedef struct ucontext
{
diff --git a/sysdeps/unix/sysv/linux/s390/sys/ucontext.h b/sysdeps/unix/sysv/linux/s390/sys/ucontext.h
index 80410fa..183da5c 100644
--- a/sysdeps/unix/sysv/linux/s390/sys/ucontext.h
+++ b/sysdeps/unix/sysv/linux/s390/sys/ucontext.h
@@ -26,11 +26,17 @@
#include <bits/types/stack_t.h>
+#ifdef __USE_MISC
+# define __ctx(fld) fld
+#else
+# define __ctx(fld) __ ## fld
+#endif
+
/* Type for a program status word. */
typedef struct
{
- unsigned long mask;
- unsigned long addr;
+ unsigned long __ctx(mask);
+ unsigned long __ctx(addr);
} __attribute__ ((__aligned__(8))) __psw_t;
/* Type for a general-purpose register. */
@@ -42,35 +48,40 @@ typedef unsigned long greg_t;
that has the same size as s390_regs. This is needed for the
elf_prstatus structure. */
#if __WORDSIZE == 64
-# define NGREG 27
+# define __NGREG 27
#else
-# define NGREG 36
+# define __NGREG 36
+#endif
+#ifdef __USE_MISC
+# define NGREG __NGREG
#endif
/* Must match kernels psw_t alignment. */
-typedef greg_t gregset_t[NGREG] __attribute__ ((__aligned__(8)));
+typedef greg_t gregset_t[__NGREG] __attribute__ ((__aligned__(8)));
typedef union
{
- double d;
- float f;
+ double __ctx(d);
+ float __ctx(f);
} fpreg_t;
/* Register set for the floating-point registers. */
typedef struct
{
- unsigned int fpc;
- fpreg_t fprs[16];
+ unsigned int __ctx(fpc);
+ fpreg_t __ctx(fprs)[16];
} fpregset_t;
/* Context to describe whole processor state. */
typedef struct
{
- __psw_t psw;
- unsigned long gregs[16];
- unsigned int aregs[16];
- fpregset_t fpregs;
+ __psw_t __ctx(psw);
+ unsigned long __ctx(gregs)[16];
+ unsigned int __ctx(aregs)[16];
+ fpregset_t __ctx(fpregs);
} mcontext_t;
+#undef __ctx
+
/* Userlevel context. */
typedef struct ucontext
{
diff --git a/sysdeps/unix/sysv/linux/sh/sys/ucontext.h b/sysdeps/unix/sysv/linux/sh/sys/ucontext.h
index 7444298..d44f95e 100644
--- a/sysdeps/unix/sysv/linux/sh/sys/ucontext.h
+++ b/sysdeps/unix/sysv/linux/sh/sys/ucontext.h
@@ -30,10 +30,13 @@
typedef int greg_t;
/* Number of general registers. */
-#define NGREG 16
+#define __NGREG 16
+#ifdef __USE_MISC
+# define NGREG __NGREG
+#endif
/* Container for all general registers. */
-typedef greg_t gregset_t[NGREG];
+typedef greg_t gregset_t[__NGREG];
#ifdef __USE_MISC
/* Number of each register is the `gregset_t' array. */
@@ -77,29 +80,40 @@ enum
typedef int freg_t;
/* Number of FPU registers. */
-#define NFPREG 16
+#define __NFPREG 16
+#ifdef __USE_MISC
+# define NFPREG __NFPREG
+#endif
/* Structure to describe FPU registers. */
-typedef freg_t fpregset_t[NFPREG];
+typedef freg_t fpregset_t[__NFPREG];
+
+#ifdef __USE_MISC
+# define __ctx(fld) fld
+#else
+# define __ctx(fld) __ ## fld
+#endif
/* Context to describe whole processor state. */
typedef struct
{
- unsigned int oldmask;
- gregset_t gregs;
- unsigned int pc;
- unsigned int pr;
- unsigned int sr;
- unsigned int gbr;
- unsigned int mach;
- unsigned int macl;
- fpregset_t fpregs;
- fpregset_t xfpregs;
- unsigned int fpscr;
- unsigned int fpul;
- unsigned int ownedfp;
+ unsigned int __ctx(oldmask);
+ gregset_t __ctx(gregs);
+ unsigned int __ctx(pc);
+ unsigned int __ctx(pr);
+ unsigned int __ctx(sr);
+ unsigned int __ctx(gbr);
+ unsigned int __ctx(mach);
+ unsigned int __ctx(macl);
+ fpregset_t __ctx(fpregs);
+ fpregset_t __ctx(xfpregs);
+ unsigned int __ctx(fpscr);
+ unsigned int __ctx(fpul);
+ unsigned int __ctx(ownedfp);
} mcontext_t;
+#undef __ctx
+
/* Userlevel context. */
typedef struct ucontext
{
diff --git a/sysdeps/unix/sysv/linux/x86/sys/ucontext.h b/sysdeps/unix/sysv/linux/x86/sys/ucontext.h
index 92a698e..5fd64bf 100644
--- a/sysdeps/unix/sysv/linux/x86/sys/ucontext.h
+++ b/sysdeps/unix/sysv/linux/x86/sys/ucontext.h
@@ -25,16 +25,25 @@
#include <bits/types/stack_t.h>
+#ifdef __USE_MISC
+# define __ctx(fld) fld
+#else
+# define __ctx(fld) __ ## fld
+#endif
+
#ifdef __x86_64__
/* Type for general register. */
__extension__ typedef long long int greg_t;
/* Number of general registers. */
-#define NGREG 23
+#define __NGREG 23
+#ifdef __USE_MISC
+# define NGREG __NGREG
+#endif
/* Container for all general registers. */
-typedef greg_t gregset_t[NGREG];
+typedef greg_t gregset_t[__NGREG];
#ifdef __USE_GNU
/* Number of each register in the `gregset_t' array. */
@@ -91,8 +100,8 @@ enum
struct _libc_fpxreg
{
- unsigned short int significand[4];
- unsigned short int exponent;
+ unsigned short int __ctx(significand)[4];
+ unsigned short int __ctx(exponent);
unsigned short int __glibc_reserved1[3];
};
@@ -104,14 +113,14 @@ struct _libc_xmmreg
struct _libc_fpstate
{
/* 64-bit FXSAVE format. */
- __uint16_t cwd;
- __uint16_t swd;
- __uint16_t ftw;
- __uint16_t fop;
- __uint64_t rip;
- __uint64_t rdp;
- __uint32_t mxcsr;
- __uint32_t mxcr_mask;
+ __uint16_t __ctx(cwd);
+ __uint16_t __ctx(swd);
+ __uint16_t __ctx(ftw);
+ __uint16_t __ctx(fop);
+ __uint64_t __ctx(rip);
+ __uint64_t __ctx(rdp);
+ __uint32_t __ctx(mxcsr);
+ __uint32_t __ctx(mxcr_mask);
struct _libc_fpxreg _st[8];
struct _libc_xmmreg _xmm[16];
__uint32_t __glibc_reserved1[24];
@@ -123,9 +132,9 @@ typedef struct _libc_fpstate *fpregset_t;
/* Context to describe whole processor state. */
typedef struct
{
- gregset_t gregs;
+ gregset_t __ctx(gregs);
/* Note that fpregs is a pointer. */
- fpregset_t fpregs;
+ fpregset_t __ctx(fpregs);
__extension__ unsigned long long __reserved1 [8];
} mcontext_t;
@@ -146,10 +155,13 @@ typedef struct ucontext
typedef int greg_t;
/* Number of general registers. */
-#define NGREG 19
+#define __NGREG 19
+#ifdef __USE_MISC
+# define NGREG __NGREG
+#endif
/* Container for all general registers. */
-typedef greg_t gregset_t[NGREG];
+typedef greg_t gregset_t[__NGREG];
#ifdef __USE_GNU
/* Number of each register is the `gregset_t' array. */
@@ -199,21 +211,21 @@ enum
/* Definitions taken from the kernel headers. */
struct _libc_fpreg
{
- unsigned short int significand[4];
- unsigned short int exponent;
+ unsigned short int __ctx(significand)[4];
+ unsigned short int __ctx(exponent);
};
struct _libc_fpstate
{
- unsigned long int cw;
- unsigned long int sw;
- unsigned long int tag;
- unsigned long int ipoff;
- unsigned long int cssel;
- unsigned long int dataoff;
- unsigned long int datasel;
+ unsigned long int __ctx(cw);
+ unsigned long int __ctx(sw);
+ unsigned long int __ctx(tag);
+ unsigned long int __ctx(ipoff);
+ unsigned long int __ctx(cssel);
+ unsigned long int __ctx(dataoff);
+ unsigned long int __ctx(datasel);
struct _libc_fpreg _st[8];
- unsigned long int status;
+ unsigned long int __ctx(status);
};
/* Structure to describe FPU registers. */
@@ -222,12 +234,12 @@ typedef struct _libc_fpstate *fpregset_t;
/* Context to describe whole processor state. */
typedef struct
{
- gregset_t gregs;
+ gregset_t __ctx(gregs);
/* Due to Linux's history we have to use a pointer here. The SysV/i386
ABI requires a struct with the values. */
- fpregset_t fpregs;
- unsigned long int oldmask;
- unsigned long int cr2;
+ fpregset_t __ctx(fpregs);
+ unsigned long int __ctx(oldmask);
+ unsigned long int __ctx(cr2);
} mcontext_t;
/* Userlevel context. */
@@ -243,4 +255,6 @@ typedef struct ucontext
#endif /* !__x86_64__ */
+#undef __ctx
+
#endif /* sys/ucontext.h */
-----------------------------------------------------------------------
Summary of changes:
ChangeLog | 96 ++++++++++++++++++++++++
sysdeps/arm/sys/ucontext.h | 19 ++++-
sysdeps/i386/sys/ucontext.h | 44 +++++++----
sysdeps/m68k/sys/ucontext.h | 19 ++++-
sysdeps/mips/sys/ucontext.h | 37 ++++++---
sysdeps/unix/sysv/linux/alpha/sys/ucontext.h | 14 +++-
sysdeps/unix/sysv/linux/m68k/sys/ucontext.h | 31 +++++---
sysdeps/unix/sysv/linux/mips/sys/ucontext.h | 88 ++++++++++++---------
sysdeps/unix/sysv/linux/nios2/sys/ucontext.h | 12 +++-
sysdeps/unix/sysv/linux/powerpc/sys/ucontext.h | 73 +++++++++++-------
sysdeps/unix/sysv/linux/s390/sys/ucontext.h | 37 ++++++---
sysdeps/unix/sysv/linux/sh/sys/ucontext.h | 48 ++++++++----
sysdeps/unix/sysv/linux/x86/sys/ucontext.h | 74 +++++++++++--------
13 files changed, 414 insertions(+), 178 deletions(-)
hooks/post-receive
--
GNU C Library master sources