* [musl] [PATCH v2] sh: fix incorrect GNU mcontext_t member definitions
@ 2020-12-12 4:30 Ariadne Conill
0 siblings, 0 replies; only message in thread
From: Ariadne Conill @ 2020-12-12 4:30 UTC (permalink / raw)
To: musl; +Cc: Ariadne Conill
When compiling as _GNU_SOURCE, mcontext_t structure mirrors names used
in sigcontext structure, but without the sc_ prefix. Split out sigcontext
structure and adjust the mcontext_t member names accordingly.
This is necessary to compile libucontext on sh architecture.
---
v2: fix mcontext_t.gregs member name typo, fix pthread mcontext member usage
arch/sh/bits/signal.h | 13 +++++++++++--
arch/sh/pthread_arch.h | 4 ++--
2 files changed, 13 insertions(+), 4 deletions(-)
diff --git a/arch/sh/bits/signal.h b/arch/sh/bits/signal.h
index 160311fa..d0b14828 100644
--- a/arch/sh/bits/signal.h
+++ b/arch/sh/bits/signal.h
@@ -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];
diff --git a/arch/sh/pthread_arch.h b/arch/sh/pthread_arch.h
index 0fcf70d2..199c2d55 100644
--- a/arch/sh/pthread_arch.h
+++ b/arch/sh/pthread_arch.h
@@ -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
--
2.29.2
^ permalink raw reply [flat|nested] only message in thread
only message in thread, other threads:[~2020-12-12 4:31 UTC | newest]
Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-12-12 4:30 [musl] [PATCH v2] sh: fix incorrect GNU mcontext_t member definitions Ariadne Conill
Code repositories for project(s) associated with this public inbox
https://git.vuxu.org/mirror/musl/
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).