runtime: populate signal PC on NetBSD
authorNikhil Benesch <nikhil.benesch@gmail.com>
Tue, 13 Oct 2020 06:51:30 +0000 (06:51 +0000)
committerIan Lance Taylor <iant@golang.org>
Wed, 14 Oct 2020 05:21:53 +0000 (22:21 -0700)
The NetBSD libc provides an architecture-independent macro that can
extract the PC from a ucontext struct.

Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/261740

gcc/go/gofrontend/MERGE
libgo/runtime/go-signal.c

index 80e702fc3f56efef55c91cb7726b0475dedce33e..2c7a9bde825e401d219c106d0beac9ee82077055 100644 (file)
@@ -1,4 +1,4 @@
-5e76d81ec120e05a59e6c7d173ddf8a3de466bd0
+6cb7b9e924d84125f21f4a2a96aa0d59466056fe
 
 The first line of this file holds the git revision number of the last
 merge done from the gofrontend repository.
index b429fdb240349c96ef84df37dc86fa8dd5e48c93..d30d1603adcbcc1471b924efe9655771972ebaf3 100644 (file)
@@ -229,6 +229,8 @@ getSiginfo(siginfo_t *info, void *context __attribute__((unused)))
        ret.sigpc = ((ucontext_t*)(context))->uc_mcontext.jmp_context.iar;
 #elif defined(__aarch64__) && defined(__linux__)
        ret.sigpc = ((ucontext_t*)(context))->uc_mcontext.pc;
+#elif defined(__NetBSD__)
+       ret.sigpc = _UC_MACHINE_PC(((ucontext_t*)(context)));
 #endif
 
        if (ret.sigpc == 0) {