From a0993f8f0f161423ecdcb754f282ffd2fe47a7b5 Mon Sep 17 00:00:00 2001 From: Rich Felker Date: Wed, 2 Oct 2019 09:28:03 -0400 Subject: [PATCH] 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. --- arch/riscv64/bits/signal.h | 16 ++++++++++------ 1 file 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; -- 2.25.1