sh: fix incorrect mcontext_t member naming
authorAriadne Conill <ariadne@dereferenced.org>
Sat, 12 Dec 2020 04:30:53 +0000 (04:30 +0000)
committerRich Felker <dalias@aerifal.cx>
Sat, 12 Dec 2020 22:15:26 +0000 (17:15 -0500)
while the layouts match, the member member naming expected by software
using mcontext_t omits the sc_ prefix.

arch/sh/bits/signal.h
arch/sh/pthread_arch.h

index 160311f..d0b1482 100644 (file)
@@ -9,7 +9,16 @@
 #if defined(_GNU_SOURCE) || defined(_BSD_SOURCE)
 typedef int greg_t, gregset_t[16];
 typedef int freg_t, fpregset_t[16];
-typedef struct sigcontext {
+typedef struct {
+       unsigned long oldmask;
+       unsigned long gregs[16];
+       unsigned long pc, pr, sr;
+       unsigned long gbr, mach, macl;
+       unsigned long fpregs[16];
+       unsigned long xfpregs[16];
+       unsigned int fpscr, fpul, ownedfp;
+} mcontext_t;
+struct sigcontext {
        unsigned long oldmask;
        unsigned long sc_regs[16];
        unsigned long sc_pc, sc_pr, sc_sr;
@@ -17,7 +26,7 @@ typedef struct sigcontext {
        unsigned long sc_fpregs[16];
        unsigned long sc_xfpregs[16];
        unsigned int sc_fpscr, sc_fpul, sc_ownedfp;
-} mcontext_t;
+};
 #else
 typedef struct {
        unsigned long __regs[58];
index 0fcf70d..199c2d5 100644 (file)
@@ -8,9 +8,9 @@ static inline uintptr_t __get_tp()
 #define TLS_ABOVE_TP
 #define GAP_ABOVE_TP 8
 
-#define MC_PC sc_pc
+#define MC_PC pc
 
 #ifdef __FDPIC__
-#define MC_GOT sc_regs[12]
+#define MC_GOT gregs[12]
 #define CANCEL_GOT (*(uintptr_t *)((char *)__syscall_cp_asm+sizeof(uintptr_t)))
 #endif