+2017-06-28 Joseph Myers <joseph@codesourcery.com>
+
+ [BZ #21457]
+ * sysdeps/unix/sysv/linux/m68k/sys/ucontext.h (fpregset_t): Remove
+ struct tag.
+ * sysdeps/unix/sysv/linux/mips/sys/ucontext.h (fpregset_t):
+ Likewise.
+ * sysdeps/unix/sysv/linux/nios2/sys/ucontext.h (mcontext_t):
+ Likewise.
+ * sysdeps/unix/sysv/linux/powerpc/sys/ucontext.h (pt_regs):
+ Declare struct type with __ctx.
+ [__WORDSIZE != 32] (mcontext_t): Use __ctx with pt_regs struct
+ tag.
+ (ucontext_t) [__WORDSIZE == 32]: Use __ctx with pt_regs struct tag
+ and regs field name.
+
2017-06-27 Joseph Myers <joseph@codesourcery.com>
* elf/loadtest.c (OUT): Define using do { } while (0).
* The ucontext_t type no longer has the name struct ucontext. This changes
the C++ name mangling for interfaces involving this type.
+* 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.
+
* The synchronization that pthread_spin_unlock performs has been changed
to now be equivalent to a C11 atomic store with release memory order to
the spin lock's memory location. This ensures correct synchronization
#endif
/* Structure to describe FPU registers. */
-typedef struct fpregset
+typedef struct
{
int __ctx(f_pcr);
int __ctx(f_psr);
#endif
/* Container for all FPU registers. */
-typedef struct fpregset {
+typedef struct {
union {
double __ctx(fp_dregs)[__NFPREG];
struct {
#endif
/* Context to describe whole processor state. */
-typedef struct mcontext
+typedef struct
{
int __ctx(version);
unsigned long __ctx(regs)[32];
# define __ctx(fld) __ ## fld
#endif
+struct __ctx(pt_regs);
+
#if __WORDSIZE == 32
/* Number of general registers. */
int __pad0;
unsigned long __ctx(handler);
unsigned long __ctx(oldmask);
- struct pt_regs *__ctx(regs);
+ struct __ctx(pt_regs) *__ctx(regs);
gregset_t __ctx(gp_regs);
fpregset_t __ctx(fp_regs);
/*
#endif
-#undef __ctx
-
/* Userlevel context. */
typedef struct ucontext_t
{
*/
int uc_pad[7];
union uc_regs_ptr {
- struct pt_regs *regs;
+ struct __ctx(pt_regs) *__ctx(regs);
mcontext_t *uc_regs;
} uc_mcontext;
sigset_t uc_sigmask;
#endif
} ucontext_t;
+#undef __ctx
+
#endif /* sys/ucontext.h */