sh: fix incorrect mcontext_t member naming

while the layouts match, the member member naming expected by software
using mcontext_t omits the sc_ prefix.
This commit is contained in:
Ariadne Conill 2020-12-12 04:30:53 +00:00 committed by Rich Felker
parent 1e4204d522
commit db981ffb3e
2 changed files with 13 additions and 4 deletions

View 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];

View 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