From: Rich Felker Date: Wed, 2 Oct 2019 13:28:03 +0000 (-0400) Subject: reintroduce riscv64 struct sigcontext X-Git-Tag: v1.1.24~4 X-Git-Url: https://git.librecmc.org/?a=commitdiff_plain;h=a0993f8f0f161423ecdcb754f282ffd2fe47a7b5;p=oweals%2Fmusl.git 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. --- 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;