bug-standards
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Circumstances in which ChangeLog format is no longer useful


From: Alfred M. Szmidt
Subject: Re: Circumstances in which ChangeLog format is no longer useful
Date: Sat, 29 Jul 2017 06:21:27 -0400

   If we are to continue with the ChangeLog practice, I think an important
   recommendation is that the entries should say WHY a change was made, 
   instead of what most do - merely state that it was made. 

That is already the case:

>  For later reference or for summarizing, sometimes it is useful to
>  start the entry with a one-line description (sometimes called a
>  title) to describe its overall purpose.

Maybe this can be expanded to say that multi line descriptions are
also welcome.

   Personally I find the ChangeLogs of most projects singularly useless.
   Even those which are well maintained tell you nothing which cannot
   be gleaned from looking at the git repository.

People keep saying that they are useless, but so far no example of why
they are useless have been presented or even the slightest argument
was to how one could extract similar information from VCS.  neither
diff nor annotate provide this information, they cannot do so in a
generic way and the only way to do it is to write it manually.

That some people might not use them does not mean that they become
useless automatically, they are still a useful tool even with VCS, and
have been used longer in conjunction with VCS than they where without
so saying that they are some from time long long ago is simply not
true.

A far stronger argument has to be made than insisting that they are
somehow useless to discard them completely when one is using VCS of
some sort.

It is clearly more useful to read the following to grasp what
happened,

        * sysdeps/unix/sysv/linux/powerpc/sys/ucontext.h (NFPREG)
        [__WORDSIZE != 32]: Rename to __NFPREG and define NFPREG to
        __NFPREG if [__USE_MISC].
        ...

        * sysdeps/unix/sysv/linux/x86/sys/ucontext.h (NGREG)
        [!__x86_64__]: Rename to __NGREG and define NGREG to __NGREG if
        [__USE_MISC].
        ...

        * sysdeps/unix/sysv/linux/powerpc/sys/ucontext.h (NVRREG)
        [__WORDSIZE != 32]: Rename to __NVRREG and define NVRREG to
        __NVRREG if [__USE_MISC].
        ...

        * sysdeps/arm/sys/ucontext.h (__ctx): New macro.
        ...

        * sysdeps/i386/sys/ucontext.h (fpregset_t, mcontext_t): Use __ctxt in 
defining fields.
        ...

        * sysdeps/unix/sysv/linux/powerpc/sys/ucontext.h (fpregset_t) 
[__WORDSIZE != 32]: Define using __NFPREG.
       ...

        * sysdeps/unix/sysv/linux/x86/sys/ucontext.h (gregset_t): Define using 
__NGREG.
        ...

Than going over the following:

diff --git sysdeps/arm/sys/ucontext.h sysdeps/arm/sys/ucontext.h
index 37277f0..722300a 100644
--- sysdeps/arm/sys/ucontext.h
+++ 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 sysdeps/i386/sys/ucontext.h sysdeps/i386/sys/ucontext.h
index a6b936a..fb5df11 100644
--- sysdeps/i386/sys/ucontext.h
+++ 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 sysdeps/m68k/sys/ucontext.h sysdeps/m68k/sys/ucontext.h
index 2b70e72..a742aaf 100644
--- sysdeps/m68k/sys/ucontext.h
+++ 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 sysdeps/mips/sys/ucontext.h sysdeps/mips/sys/ucontext.h
index ebc0609..4bc1bc1 100644
--- sysdeps/mips/sys/ucontext.h
+++ 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 sysdeps/unix/sysv/linux/alpha/sys/ucontext.h 
sysdeps/unix/sysv/linux/alpha/sys/ucontext.h
index 09e24a1..b9e5903 100644
--- sysdeps/unix/sysv/linux/alpha/sys/ucontext.h
+++ 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 sysdeps/unix/sysv/linux/m68k/sys/ucontext.h 
sysdeps/unix/sysv/linux/m68k/sys/ucontext.h
index 0570ec3..e6ecbe6 100644
--- sysdeps/unix/sysv/linux/m68k/sys/ucontext.h
+++ 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 sysdeps/unix/sysv/linux/mips/sys/ucontext.h 
sysdeps/unix/sysv/linux/mips/sys/ucontext.h
index d15d85d..048e9a4 100644
--- sysdeps/unix/sysv/linux/mips/sys/ucontext.h
+++ 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 sysdeps/unix/sysv/linux/nios2/sys/ucontext.h 
sysdeps/unix/sysv/linux/nios2/sys/ucontext.h
index 72ae1a0..af8d75c 100644
--- sysdeps/unix/sysv/linux/nios2/sys/ucontext.h
+++ 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 sysdeps/unix/sysv/linux/powerpc/sys/ucontext.h 
sysdeps/unix/sysv/linux/powerpc/sys/ucontext.h
index c10741c..b460f23 100644
--- sysdeps/unix/sysv/linux/powerpc/sys/ucontext.h
+++ 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 sysdeps/unix/sysv/linux/s390/sys/ucontext.h 
sysdeps/unix/sysv/linux/s390/sys/ucontext.h
index 80410fa..183da5c 100644
--- sysdeps/unix/sysv/linux/s390/sys/ucontext.h
+++ 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 sysdeps/unix/sysv/linux/sh/sys/ucontext.h 
sysdeps/unix/sysv/linux/sh/sys/ucontext.h
index 7444298..d44f95e 100644
--- sysdeps/unix/sysv/linux/sh/sys/ucontext.h
+++ 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 sysdeps/unix/sysv/linux/x86/sys/ucontext.h 
sysdeps/unix/sysv/linux/x86/sys/ucontext.h
index 92a698e..5fd64bf 100644
--- sysdeps/unix/sysv/linux/x86/sys/ucontext.h
+++ 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 /*



reply via email to

[Prev in Thread] Current Thread [Next in Thread]