On 6/26/24 21:27, Brad Smith wrote:
> tcg/riscv: Fix building on OpenBSD/riscv64
>
> Use ucontext_t/struct sigcontext member name from machine/signal.h
> instead of Linux specific name.
>
> Signed-off-by: Brad Smith <brad@comstyle.com>
> ---
> tcg/riscv/tcg-target.c.inc | 5 +++++
> 1 file changed, 5 insertions(+)
Thanks. I'm going to clean all of this up into util/cpuinfo-riscv.c, similar to other
hosts, and I will include this.
r~
>
> diff --git a/tcg/riscv/tcg-target.c.inc b/tcg/riscv/tcg-target.c.inc
> index 639363039b..aeae9a8ad8 100644
> --- a/tcg/riscv/tcg-target.c.inc
> +++ b/tcg/riscv/tcg-target.c.inc
> @@ -2116,7 +2116,12 @@ static void sigill_handler(int signo, siginfo_t *si, void *data)
> {
> /* Skip the faulty instruction */
> ucontext_t *uc = (ucontext_t *)data;
> +
> +#ifdef __OpenBSD__
> + uc->sc_sepc += 4;
> +#else
> uc->uc_mcontext.__gregs[REG_PC] += 4;
> +#endif
>
> got_sigill = 1;
> }