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 <b...@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;
  }


Reply via email to