This is the mail archive of the glibc-cvs@sourceware.org mailing list for the glibc project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

GNU C Library master sources branch master updated. glibc-2.25-636-ge78dc67


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  e78dc67889c35d9a77e043930dc234005cdcbc76 (commit)
      from  84d8c5bc8b4815bbdd4395f419aed047db3b67e3 (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=e78dc67889c35d9a77e043930dc234005cdcbc76

commit e78dc67889c35d9a77e043930dc234005cdcbc76
Author: Joseph Myers <joseph@codesourcery.com>
Date:   Thu Jun 29 19:44:43 2017 +0000

    SPARC sys/ucontext.h namespace fixes (bug 21457).
    
    This patch fixes various miscellaneous namespace issues in the SPARC
    sys/ucontext.h header.  These are similar to changes made previous to
    other sys/ucontext.h headers, where the SPARC header was excluded from
    those previous patches because of its complexity.
    
    Tested for SPARC with build-many-glibcs.py.
    
    	[BZ #21457]
    	* sysdeps/unix/sysv/linux/sparc/sys/ucontext.h (__ctx): New macro.
    	[__WORDSIZE == 64] (MC_TSTATE): Define only for [__USE_MISC].
    	[__WORDSIZE == 64] (MC_PC): Likewise.
    	[__WORDSIZE == 64] (MC_NPC): Likewise.
    	[__WORDSIZE == 64] (MC_Y): Likewise.
    	[__WORDSIZE == 64] (MC_G1): Likewise.
    	[__WORDSIZE == 64] (MC_G2): Likewise.
    	[__WORDSIZE == 64] (MC_G3): Likewise.
    	[__WORDSIZE == 64] (MC_G4): Likewise.
    	[__WORDSIZE == 64] (MC_G5): Likewise.
    	[__WORDSIZE == 64] (MC_G6): Likewise.
    	[__WORDSIZE == 64] (MC_G7): Likewise.
    	[__WORDSIZE == 64] (MC_O0): Likewise.
    	[__WORDSIZE == 64] (MC_O1): Likewise.
    	[__WORDSIZE == 64] (MC_O2): Likewise.
    	[__WORDSIZE == 64] (MC_O3): Likewise.
    	[__WORDSIZE == 64] (MC_O4): Likewise.
    	[__WORDSIZE == 64] (MC_O5): Likewise.
    	[__WORDSIZE == 64] (MC_O6): Likewise.
    	[__WORDSIZE == 64] (MC_O7): Likewise.
    	[__WORDSIZE == 64] (MC_NGREG): Rename to __MC_NGREG and define to
    	__MC_NGREG if [__USE_MISC].
    	[__WORDSIZE == 64] (MC_MAXFPQ): Define only for [__USE_MISC].
    	[__WORDSIZE == 64] (mc_gregset_t): Define using __MC_NGREG.
    	[__WORDSIZE == 64] (struct mc_fq): Rename to struct __mc_fq.
    	Define fields using __ctx.
    	[__WORDSIZE == 64] (mc_fpu_t): Remove struct tag.  Define fields
    	using __ctx.
    	[__WORDSIZE == 64] (mcontext_t): Define fields using __ctx.
    	(REG_PSR): Define only for [__USE_MISC].
    	(REG_PC): Likewise.
    	(REG_nPC): Likewise.
    	(REG_Y): Likewise.
    	(REG_G1): Likewise.
    	(REG_G2): Likewise.
    	(REG_G3): Likewise.
    	(REG_G4): Likewise.
    	(REG_G5): Likewise.
    	(REG_G6): Likewise.
    	(REG_G7): Likewise.
    	(REG_O0): Likewise.
    	(REG_O1): Likewise.
    	(REG_O2): Likewise.
    	(REG_O3): Likewise.
    	(REG_O4): Likewise.
    	(REG_O5): Likewise.
    	(REG_O6): Likewise.
    	(REG_O7): Likewise.
    	[__WORDSIZE == 64] (REG_ASI): Define only for [__USE_MISC].
    	[__WORDSIZE == 64] (REG_FPRS): Likewise.
    	(NGREG): Rename to __NGREG and define to __NGREG if [__USE_MISC].
    	(gregset_t): Define using __NGREG.
    	(SPARC_MAXREGWINDOW): Rename to __SPARC_MAXREGWINDOW and define to
    	__SPARC_MAXREGWINDOW if [__USE_MISC].
    	(struct rwindow): Rename to struct __rwindow.  Define fields using
    	__ctx.
    	(rw_fp): Define only for [__USE_MISC].
    	(rw_rtn): Likewise.
    	(gwindows_t): Remove struct tag.  Define fields using __ctx and
    	__SPARC_MAXREGWINDOW.
    	(MAXFPQ): Define only for [__USE_MISC].
    	(struct fpq): Rename to struct __fpq.  Define fields using __ctx.
    	(struct fq): Rename to struct __fq.  Define fields using __ctx.
    	(FPU_REGS_TYPE): Define only for [__USE_MISC].
    	(FPU_DREGS_TYPE): Likewise.
    	(V7_FPU_FSR_TYPE): Likewise.
    	(V9_FPU_FSR_TYPE): Likewise.
    	(V9_FPU_FPRS_TYPE): Likewise.
    	[__WORDSIZE == 64] (fpregset_t): Remove struct tag.  Define fields
    	using __ctx.
    	[__WORDSIZE != 64] (fpregset_t): Likewise.
    	[__WORDSIZE != 64] (xrs_t): Define fields using __ctx.
    	[__WORDSIZE != 64] (XRS_ID): Define only for [__USE_MISC].
    	[__WORDSIZE != 64] (mcontext_t): Define fields using __ctx.
    	Rename field filler to __glibc_reserved1.
    	* sysdeps/unix/sysv/linux/sparc/sparc32/ucontext_i.sym
    	(MC_FILLER): Remove.

diff --git a/ChangeLog b/ChangeLog
index 147dcaa..dd61ff0 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,84 @@
+2017-06-29  Joseph Myers  <joseph@codesourcery.com>
+
+	[BZ #21457]
+	* sysdeps/unix/sysv/linux/sparc/sys/ucontext.h (__ctx): New macro.
+	[__WORDSIZE == 64] (MC_TSTATE): Define only for [__USE_MISC].
+	[__WORDSIZE == 64] (MC_PC): Likewise.
+	[__WORDSIZE == 64] (MC_NPC): Likewise.
+	[__WORDSIZE == 64] (MC_Y): Likewise.
+	[__WORDSIZE == 64] (MC_G1): Likewise.
+	[__WORDSIZE == 64] (MC_G2): Likewise.
+	[__WORDSIZE == 64] (MC_G3): Likewise.
+	[__WORDSIZE == 64] (MC_G4): Likewise.
+	[__WORDSIZE == 64] (MC_G5): Likewise.
+	[__WORDSIZE == 64] (MC_G6): Likewise.
+	[__WORDSIZE == 64] (MC_G7): Likewise.
+	[__WORDSIZE == 64] (MC_O0): Likewise.
+	[__WORDSIZE == 64] (MC_O1): Likewise.
+	[__WORDSIZE == 64] (MC_O2): Likewise.
+	[__WORDSIZE == 64] (MC_O3): Likewise.
+	[__WORDSIZE == 64] (MC_O4): Likewise.
+	[__WORDSIZE == 64] (MC_O5): Likewise.
+	[__WORDSIZE == 64] (MC_O6): Likewise.
+	[__WORDSIZE == 64] (MC_O7): Likewise.
+	[__WORDSIZE == 64] (MC_NGREG): Rename to __MC_NGREG and define to
+	__MC_NGREG if [__USE_MISC].
+	[__WORDSIZE == 64] (MC_MAXFPQ): Define only for [__USE_MISC].
+	[__WORDSIZE == 64] (mc_gregset_t): Define using __MC_NGREG.
+	[__WORDSIZE == 64] (struct mc_fq): Rename to struct __mc_fq.
+	Define fields using __ctx.
+	[__WORDSIZE == 64] (mc_fpu_t): Remove struct tag.  Define fields
+	using __ctx.
+	[__WORDSIZE == 64] (mcontext_t): Define fields using __ctx.
+	(REG_PSR): Define only for [__USE_MISC].
+	(REG_PC): Likewise.
+	(REG_nPC): Likewise.
+	(REG_Y): Likewise.
+	(REG_G1): Likewise.
+	(REG_G2): Likewise.
+	(REG_G3): Likewise.
+	(REG_G4): Likewise.
+	(REG_G5): Likewise.
+	(REG_G6): Likewise.
+	(REG_G7): Likewise.
+	(REG_O0): Likewise.
+	(REG_O1): Likewise.
+	(REG_O2): Likewise.
+	(REG_O3): Likewise.
+	(REG_O4): Likewise.
+	(REG_O5): Likewise.
+	(REG_O6): Likewise.
+	(REG_O7): Likewise.
+	[__WORDSIZE == 64] (REG_ASI): Define only for [__USE_MISC].
+	[__WORDSIZE == 64] (REG_FPRS): Likewise.
+	(NGREG): Rename to __NGREG and define to __NGREG if [__USE_MISC].
+	(gregset_t): Define using __NGREG.
+	(SPARC_MAXREGWINDOW): Rename to __SPARC_MAXREGWINDOW and define to
+	__SPARC_MAXREGWINDOW if [__USE_MISC].
+	(struct rwindow): Rename to struct __rwindow.  Define fields using
+	__ctx.
+	(rw_fp): Define only for [__USE_MISC].
+	(rw_rtn): Likewise.
+	(gwindows_t): Remove struct tag.  Define fields using __ctx and
+	__SPARC_MAXREGWINDOW.
+	(MAXFPQ): Define only for [__USE_MISC].
+	(struct fpq): Rename to struct __fpq.  Define fields using __ctx.
+	(struct fq): Rename to struct __fq.  Define fields using __ctx.
+	(FPU_REGS_TYPE): Define only for [__USE_MISC].
+	(FPU_DREGS_TYPE): Likewise.
+	(V7_FPU_FSR_TYPE): Likewise.
+	(V9_FPU_FSR_TYPE): Likewise.
+	(V9_FPU_FPRS_TYPE): Likewise.
+	[__WORDSIZE == 64] (fpregset_t): Remove struct tag.  Define fields
+	using __ctx.
+	[__WORDSIZE != 64] (fpregset_t): Likewise.
+	[__WORDSIZE != 64] (xrs_t): Define fields using __ctx.
+	[__WORDSIZE != 64] (XRS_ID): Define only for [__USE_MISC].
+	[__WORDSIZE != 64] (mcontext_t): Define fields using __ctx.
+	Rename field filler to __glibc_reserved1.
+	* sysdeps/unix/sysv/linux/sparc/sparc32/ucontext_i.sym
+	(MC_FILLER): Remove.
+
 2017-06-29  Florian Weimer  <fweimer@redhat.com>
 
 	* stdio-common/tst-vfprintf-user-type.c (my_printf_function):
diff --git a/NEWS b/NEWS
index 84c69bf..711b2d9 100644
--- a/NEWS
+++ b/NEWS
@@ -99,8 +99,12 @@ Version 2.26
 
 * On M68k GNU/Linux and MIPS GNU/Linux, the fpregset_t type no longer has
   the name struct fpregset.  On Nios II GNU/Linux, the mcontext_t type no
-  longer has the name struct mcontext.  This changes the C++ name mangling
-  for interfaces involving those types.
+  longer has the name struct mcontext.  On SPARC GNU/Linux, the struct
+  mc_fq, struct rwindow, struct fpq and struct fq types are no longer
+  defined in sys/ucontext.h, the mc_fpu_t type no longer has the name struct
+  mc_fpu, the gwindows_t type no longer has the name struct gwindows and the
+  fpregset_t type no longer has the name struct fpu.  This changes the C++
+  name mangling for interfaces involving those types.
 
 * The synchronization that pthread_spin_unlock performs has been changed
   to now be equivalent to a C11 atomic store with release memory order to
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc32/ucontext_i.sym b/sysdeps/unix/sysv/linux/sparc/sparc32/ucontext_i.sym
index 544030c..8a7cb5a 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc32/ucontext_i.sym
+++ b/sysdeps/unix/sysv/linux/sparc/sparc32/ucontext_i.sym
@@ -16,7 +16,6 @@ MC_GREGS	offsetof (mcontext_t, gregs)
 MC_GWINS	offsetof (mcontext_t, gwins)
 MC_FPREGS	offsetof (mcontext_t, fpregs)
 MC_XRS		offsetof (mcontext_t, xrs)
-MC_FILLER	offsetof (mcontext_t, filler)
 GREG_PSR	(REG_PSR * sizeof(greg_t))
 GREG_PC		(REG_PC * sizeof(greg_t))
 GREG_NPC	(REG_nPC * sizeof(greg_t))
diff --git a/sysdeps/unix/sysv/linux/sparc/sys/ucontext.h b/sysdeps/unix/sysv/linux/sparc/sys/ucontext.h
index dc0d316..9932ed4 100644
--- a/sysdeps/unix/sysv/linux/sparc/sys/ucontext.h
+++ b/sysdeps/unix/sysv/linux/sparc/sys/ucontext.h
@@ -27,59 +27,69 @@
 #include <bits/wordsize.h>
 
 
+#ifdef __USE_MISC
+# define __ctx(fld) fld
+#else
+# define __ctx(fld) __ ## fld
+#endif
+
 #if __WORDSIZE == 64
 
-#define MC_TSTATE	0
-#define MC_PC		1
-#define MC_NPC		2
-#define MC_Y		3
-#define MC_G1		4
-#define MC_G2		5
-#define MC_G3		6
-#define MC_G4		7
-#define MC_G5		8
-#define MC_G6		9
-#define MC_G7		10
-#define MC_O0		11
-#define MC_O1		12
-#define MC_O2		13
-#define MC_O3		14
-#define MC_O4		15
-#define MC_O5		16
-#define MC_O6		17
-#define MC_O7		18
-#define MC_NGREG	19
+#define __MC_NGREG	19
+#ifdef __USE_MISC
+# define MC_TSTATE	0
+# define MC_PC		1
+# define MC_NPC		2
+# define MC_Y		3
+# define MC_G1		4
+# define MC_G2		5
+# define MC_G3		6
+# define MC_G4		7
+# define MC_G5		8
+# define MC_G6		9
+# define MC_G7		10
+# define MC_O0		11
+# define MC_O1		12
+# define MC_O2		13
+# define MC_O3		14
+# define MC_O4		15
+# define MC_O5		16
+# define MC_O6		17
+# define MC_O7		18
+# define MC_NGREG	__MC_NGREG
+#endif
 
 typedef unsigned long mc_greg_t;
-typedef mc_greg_t mc_gregset_t[MC_NGREG];
-
-#define MC_MAXFPQ	16
-struct mc_fq {
-	unsigned long	*mcfq_addr;
-	unsigned int	mcfq_insn;
+typedef mc_greg_t mc_gregset_t[__MC_NGREG];
+
+#ifdef __USE_MISC
+# define MC_MAXFPQ	16
+#endif
+struct __mc_fq {
+	unsigned long	*__ctx(mcfq_addr);
+	unsigned int	__ctx(mcfq_insn);
 };
 
-struct mc_fpu {
+typedef struct {
 	union {
-		unsigned int	sregs[32];
-		unsigned long	dregs[32];
-		long double	qregs[16];
-	} mcfpu_fregs;
-	unsigned long	mcfpu_fsr;
-	unsigned long	mcfpu_fprs;
-	unsigned long	mcfpu_gsr;
-	struct mc_fq	*mcfpu_fq;
-	unsigned char	mcfpu_qcnt;
-	unsigned char	mcfpu_qentsz;
-	unsigned char	mcfpu_enab;
-};
-typedef struct mc_fpu mc_fpu_t;
+		unsigned int	__ctx(sregs)[32];
+		unsigned long	__ctx(dregs)[32];
+		long double	__ctx(qregs)[16];
+	} __ctx(mcfpu_fregs);
+	unsigned long	__ctx(mcfpu_fsr);
+	unsigned long	__ctx(mcfpu_fprs);
+	unsigned long	__ctx(mcfpu_gsr);
+	struct __mc_fq	*__ctx(mcfpu_fq);
+	unsigned char	__ctx(mcfpu_qcnt);
+	unsigned char	__ctx(mcfpu_qentsz);
+	unsigned char	__ctx(mcfpu_enab);
+} mc_fpu_t;
 
 typedef struct {
-	mc_gregset_t	mc_gregs;
-	mc_greg_t	mc_fp;
-	mc_greg_t	mc_i7;
-	mc_fpu_t	mc_fpregs;
+	mc_gregset_t	__ctx(mc_gregs);
+	mc_greg_t	__ctx(mc_fp);
+	mc_greg_t	__ctx(mc_i7);
+	mc_fpu_t	__ctx(mc_fpregs);
 } mcontext_t;
 
 typedef struct ucontext_t {
@@ -97,25 +107,27 @@ typedef struct ucontext_t {
  * Location of the users' stored registers relative to R0.
  * Usage is as an index into a gregset_t array or as u.u_ar0[XX].
  */
-#define REG_PSR (0)
-#define REG_PC  (1)
-#define REG_nPC (2)
-#define REG_Y   (3)
-#define REG_G1  (4)
-#define REG_G2  (5)
-#define REG_G3  (6)
-#define REG_G4  (7)
-#define REG_G5  (8)
-#define REG_G6  (9)
-#define REG_G7  (10)
-#define REG_O0  (11)
-#define REG_O1  (12)
-#define REG_O2  (13)
-#define REG_O3  (14)
-#define REG_O4  (15)
-#define REG_O5  (16)
-#define REG_O6  (17)
-#define REG_O7  (18)
+#ifdef __USE_MISC
+# define REG_PSR (0)
+# define REG_PC  (1)
+# define REG_nPC (2)
+# define REG_Y   (3)
+# define REG_G1  (4)
+# define REG_G2  (5)
+# define REG_G3  (6)
+# define REG_G4  (7)
+# define REG_G5  (8)
+# define REG_G6  (9)
+# define REG_G7  (10)
+# define REG_O0  (11)
+# define REG_O1  (12)
+# define REG_O2  (13)
+# define REG_O3  (14)
+# define REG_O4  (15)
+# define REG_O5  (16)
+# define REG_O6  (17)
+# define REG_O7  (18)
+#endif
 
 /*
  * A gregset_t is defined as an array type for compatibility with the reference
@@ -128,20 +140,26 @@ typedef struct ucontext_t {
 
 #if __WORDSIZE == 64
 
-#define REG_ASI	(19)
-#define REG_FPRS (20)
+# define __NGREG   21
+# ifdef __USE_MISC
+#  define REG_ASI	(19)
+#  define REG_FPRS (20)
 
-#define NGREG   21
+#  define NGREG   __NGREG
+# endif
 typedef long greg_t;
 
 #else /* __WORDSIZE == 32 */
 
-#define NGREG   19
+# define __NGREG   19
+# ifdef __USE_MISC
+#  define NGREG   __NGREG
+# endif
 typedef int greg_t;
 
 #endif /* __WORDSIZE == 32 */
 
-typedef greg_t  gregset_t[NGREG];
+typedef greg_t  gregset_t[__NGREG];
 
 /*
  * The following structures define how a register window can appear on the
@@ -150,28 +168,35 @@ typedef greg_t  gregset_t[NGREG];
  * maximum number of outstanding regiters window defined in the SPARC
  * architecture (*not* implementation).
  */
-#define SPARC_MAXREGWINDOW	31	/* max windows in SPARC arch. */
-struct  rwindow
+# define __SPARC_MAXREGWINDOW	31	/* max windows in SPARC arch. */
+#ifdef __USE_MISC
+# define SPARC_MAXREGWINDOW	__SPARC_MAXREGWINDOW
+#endif
+struct  __rwindow
   {
-    greg_t rw_local[8];			/* locals */
-    greg_t rw_in[8];			/* ins */
+    greg_t __ctx(rw_local)[8];			/* locals */
+    greg_t __ctx(rw_in)[8];			/* ins */
   };
 
-#define rw_fp   rw_in[6]		/* frame pointer */
-#define rw_rtn  rw_in[7]		/* return address */
+#ifdef __USE_MISC
+# define rw_fp   __ctx(rw_in)[6]		/* frame pointer */
+# define rw_rtn  __ctx(rw_in)[7]		/* return address */
+#endif
 
-typedef struct gwindows
+typedef struct
   {
-    int            wbcnt;
-    int           *spbuf[SPARC_MAXREGWINDOW];
-    struct rwindow wbuf[SPARC_MAXREGWINDOW];
+    int            __ctx(wbcnt);
+    int           *__ctx(spbuf)[__SPARC_MAXREGWINDOW];
+    struct __rwindow __ctx(wbuf)[__SPARC_MAXREGWINDOW];
   } gwindows_t;
 
 /*
  * Floating point definitions.
  */
 
-#define MAXFPQ	16	/* max # of fpu queue entries currently supported */
+#ifdef __USE_MISC
+# define MAXFPQ	16	/* max # of fpu queue entries currently supported */
+#endif
 
 /*
  * struct fq defines the minimal format of a floating point instruction queue
@@ -180,56 +205,58 @@ typedef struct gwindows
  * conformant system implementation. Any additional fields provided by an
  * implementation should not be used applications designed to be ABI conformant. */
 
-struct fpq
+struct __fpq
   {
-    unsigned long *fpq_addr;		/* address */
-    unsigned long fpq_instr;		/* instruction */
+    unsigned long *__ctx(fpq_addr);		/* address */
+    unsigned long __ctx(fpq_instr);		/* instruction */
   };
 
-struct fq
+struct __fq
   {
     union				/* FPU inst/addr queue */
       {
-        double whole;
-        struct fpq fpq;
-      } FQu;
+        double __ctx(whole);
+        struct __fpq __ctx(fpq);
+      } __ctx(FQu);
   };
 
-#define FPU_REGS_TYPE           unsigned
-#define FPU_DREGS_TYPE          unsigned long long
-#define V7_FPU_FSR_TYPE         unsigned
-#define V9_FPU_FSR_TYPE         unsigned long long
-#define V9_FPU_FPRS_TYPE        unsigned
+#ifdef __USE_MISC
+# define FPU_REGS_TYPE           unsigned
+# define FPU_DREGS_TYPE          unsigned long long
+# define V7_FPU_FSR_TYPE         unsigned
+# define V9_FPU_FSR_TYPE         unsigned long long
+# define V9_FPU_FPRS_TYPE        unsigned
+#endif
 
 #if __WORDSIZE == 64
 
-typedef struct fpu
+typedef struct
   {
     union {				/* FPU floating point regs */
-      unsigned		fpu_regs[32];	/* 32 singles */
-      double            fpu_dregs[32];	/* 32 doubles */
-      long double	fpu_qregs[16];  /* 16 quads */
-    } fpu_fr;
-    struct fq       *fpu_q;		/* ptr to array of FQ entries */
-    unsigned long   fpu_fsr;		/* FPU status register */
-    unsigned char   fpu_qcnt;		/* # of entries in saved FQ */
-    unsigned char   fpu_q_entrysize;	/* # of bytes per FQ entry */
-    unsigned char   fpu_en;		/* flag signifying fpu in use */
+      unsigned		__ctx(fpu_regs)[32];	/* 32 singles */
+      double            __ctx(fpu_dregs)[32];	/* 32 doubles */
+      long double	__ctx(fpu_qregs)[16];  /* 16 quads */
+    } __ctx(fpu_fr);
+    struct __fq     *__ctx(fpu_q);		/* ptr to array of FQ entries */
+    unsigned long   __ctx(fpu_fsr);		/* FPU status register */
+    unsigned char   __ctx(fpu_qcnt);		/* # of entries in saved FQ */
+    unsigned char   __ctx(fpu_q_entrysize);	/* # of bytes per FQ entry */
+    unsigned char   __ctx(fpu_en);		/* flag signifying fpu in use */
   } fpregset_t;
 
 #else /* __WORDSIZE == 32 */
 
-typedef struct fpu
+typedef struct
   {
     union {				/* FPU floating point regs */
-      __extension__ unsigned long long fpu_regs[32];	/* 32 singles */
-      double             fpu_dregs[16];	/* 16 doubles */
-    } fpu_fr;
-    struct fq       *fpu_q;		/* ptr to array of FQ entries */
-    unsigned        fpu_fsr;		/* FPU status register */
-    unsigned char   fpu_qcnt;		/* # of entries in saved FQ */
-    unsigned char   fpu_q_entrysize;	/* # of bytes per FQ entry */
-    unsigned char   fpu_en;		/* flag signifying fpu in use */
+      __extension__ unsigned long long __ctx(fpu_regs)[32];	/* 32 singles */
+      double             __ctx(fpu_dregs)[16];	/* 16 doubles */
+    } __ctx(fpu_fr);
+    struct __fq     *__ctx(fpu_q);		/* ptr to array of FQ entries */
+    unsigned        __ctx(fpu_fsr);		/* FPU status register */
+    unsigned char   __ctx(fpu_qcnt);		/* # of entries in saved FQ */
+    unsigned char   __ctx(fpu_q_entrysize);	/* # of bytes per FQ entry */
+    unsigned char   __ctx(fpu_en);		/* flag signifying fpu in use */
   } fpregset_t;
 
 /*
@@ -244,19 +271,23 @@ typedef struct fpu
  */
 typedef struct
   {
-    unsigned int xrs_id;		/* indicates xrs_ptr validity */
-    void *       xrs_ptr;		/* ptr to extra reg state */
+    unsigned int __ctx(xrs_id);		/* indicates xrs_ptr validity */
+    void *       __ctx(xrs_ptr);		/* ptr to extra reg state */
   } xrs_t;
 
-#define XRS_ID	0x78727300		/* the string "xrs" */
+#ifdef __USE_MISC
+# define XRS_ID	0x78727300		/* the string "xrs" */
+#endif
 
 typedef struct
   {
-    gregset_t   gregs;		/* general register set */
-    gwindows_t  *gwins;		/* POSSIBLE pointer to register windows */
-    fpregset_t  fpregs;		/* floating point register set */
-    xrs_t       xrs;		/* POSSIBLE extra register state association */
-    long        filler[19];
+    gregset_t   __ctx(gregs);		/* general register set */
+    gwindows_t  *__ctx(gwins);		/* POSSIBLE pointer to register
+					   windows */
+    fpregset_t  __ctx(fpregs);		/* floating point register set */
+    xrs_t       __ctx(xrs);		/* POSSIBLE extra register state
+					   association */
+    long        __glibc_reserved1[19];
   } mcontext_t;
 
 

-----------------------------------------------------------------------

Summary of changes:
 ChangeLog                                          |   81 ++++++
 NEWS                                               |    8 +-
 .../unix/sysv/linux/sparc/sparc32/ucontext_i.sym   |    1 -
 sysdeps/unix/sysv/linux/sparc/sys/ucontext.h       |  267 +++++++++++---------
 4 files changed, 236 insertions(+), 121 deletions(-)


hooks/post-receive
-- 
GNU C Library master sources


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]