summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRich Felker <dalias@aerifal.cx>2019-10-02 09:28:03 -0400
committerRich Felker <dalias@aerifal.cx>2019-10-02 09:28:03 -0400
commita0993f8f0f161423ecdcb754f282ffd2fe47a7b5 (patch)
tree0138f50996e01fcf5f219699033ad6fc89c11b3b
parent2c2477da9a553c0b9b2fa18073a5dcdbe6d395af (diff)
downloadmusl-a0993f8f0f161423ecdcb754f282ffd2fe47a7b5.tar.gz
reintroduce riscv64 struct sigcontext
commit ab3eb89a8b83353cdaab12ed017a67a7730f90e9 removed it as part of correcting the mcontext_t definition, but there is still code using struct sigcontext and expecting the member names present in it, most notably libgcc_eh. almost all such usage is incorrect, but bring back struct sigcontext at least for now so as not to introduce regressions.
-rw-r--r--arch/riscv64/bits/signal.h16
1 files changed, 10 insertions, 6 deletions
diff --git a/arch/riscv64/bits/signal.h b/arch/riscv64/bits/signal.h
index 03fe48c1..2ff4be30 100644
--- a/arch/riscv64/bits/signal.h
+++ b/arch/riscv64/bits/signal.h
@@ -6,12 +6,6 @@
# define SIGSTKSZ 8192
#endif
-#if defined(_GNU_SOURCE) || defined(_BSD_SOURCE)
-typedef unsigned long greg_t;
-typedef unsigned long gregset_t[32];
-typedef union __riscv_mc_fp_state fpregset_t;
-#endif
-
typedef unsigned long __riscv_mc_gp_state[32];
struct __riscv_mc_f_ext_state {
@@ -41,6 +35,16 @@ typedef struct mcontext_t {
union __riscv_mc_fp_state __fpregs;
} mcontext_t;
+#if defined(_GNU_SOURCE) || defined(_BSD_SOURCE)
+typedef unsigned long greg_t;
+typedef unsigned long gregset_t[32];
+typedef union __riscv_mc_fp_state fpregset_t;
+struct sigcontext {
+ gregset_t gregs;
+ fpregset_t fpregs;
+};
+#endif
+
struct sigaltstack {
void *ss_sp;
int ss_flags;