summaryrefslogtreecommitdiff
path: root/lang/go114
diff options
context:
space:
mode:
authortnn <tnn@pkgsrc.org>2020-04-27 03:21:35 +0000
committertnn <tnn@pkgsrc.org>2020-04-27 03:21:35 +0000
commit4fad59592f0a4dbb58220b62878ad2937ddf3e45 (patch)
treee376ea6599e33766740106c42858430cb4a35186 /lang/go114
parent0c93226c9910da905fad739b5590266bb4268e00 (diff)
downloadpkgsrc-4fad59592f0a4dbb58220b62878ad2937ddf3e45.tar.gz
go114: work around aarch64 signal handler issue
Diffstat (limited to 'lang/go114')
-rw-r--r--lang/go114/distinfo3
-rw-r--r--lang/go114/patches/patch-src_runtime_sys__netbsd__arm64.s20
2 files changed, 22 insertions, 1 deletions
diff --git a/lang/go114/distinfo b/lang/go114/distinfo
index 449ac1edcd0..5247d5af39a 100644
--- a/lang/go114/distinfo
+++ b/lang/go114/distinfo
@@ -1,4 +1,4 @@
-$NetBSD: distinfo,v 1.3 2020/04/09 13:28:38 bsiegert Exp $
+$NetBSD: distinfo,v 1.4 2020/04/27 03:21:35 tnn Exp $
SHA1 (go1.14.2.src.tar.gz) = bdc78d3a84b9d95766574b4bf33fc179542c2adf
RMD160 (go1.14.2.src.tar.gz) = 8b6d9bdb7e8d1eb9fba36d110cfcf59c6d9adc1e
@@ -9,4 +9,5 @@ SHA1 (patch-src_cmd_dist_util.go) = 24e6f1b6ded842a8ce322a40e8766f7d344bc47e
SHA1 (patch-src_cmd_link_internal_ld_elf.go) = 990a54e3baf239916e4c7f0c1d54240e2898601a
SHA1 (patch-src_crypto_x509_root__bsd.go) = 93a2de7c685a0919fe93f5bc99f156e105dace4d
SHA1 (patch-src_runtime_os__netbsd.go) = 9b80de94667e3f8d8d1ae3648ab1fe43dd55d577
+SHA1 (patch-src_runtime_sys__netbsd__arm64.s) = b37973c0841e24991c227a7f5cc4b46c2d89f372
SHA1 (patch-src_syscall_zsysnum__solaris__amd64.go) = ec28a0fa37ba9599ec1651c8e9337a2efc48a26b
diff --git a/lang/go114/patches/patch-src_runtime_sys__netbsd__arm64.s b/lang/go114/patches/patch-src_runtime_sys__netbsd__arm64.s
new file mode 100644
index 00000000000..66507c4dd05
--- /dev/null
+++ b/lang/go114/patches/patch-src_runtime_sys__netbsd__arm64.s
@@ -0,0 +1,20 @@
+$NetBSD: patch-src_runtime_sys__netbsd__arm64.s,v 1.1 2020/04/27 03:21:35 tnn Exp $
+
+Work around kernel clobbering of r28 on aarch64 by reloading from ucontext.
+https://nxr.netbsd.org/xref/src/sys/arch/aarch64/aarch64/sig_machdep.c#104
+
+--- src/runtime/sys_netbsd_arm64.s.orig 2020-04-08 19:15:51.000000000 +0000
++++ src/runtime/sys_netbsd_arm64.s
+@@ -319,6 +319,12 @@ TEXT runtimeĀ·sigtramp(SB),NOSPLIT,$192
+ MOVD R26, 8*11(RSP)
+ MOVD R27, 8*12(RSP)
+ MOVD g, 8*13(RSP)
++ // Unclobber g for now (kernel uses it as ucontext ptr)
++ // See https://github.com/golang/go/issues/30824#issuecomment-492772426
++ // This is only correct in the non-cgo case.
++ // XXX should use lwp_getprivate as suggested.
++ // 8*36 is ucontext.uc_mcontext.__gregs[_REG_X28]
++ MOVD 8*36(g), g
+ MOVD R29, 8*14(RSP)
+ FMOVD F8, 8*15(RSP)
+ FMOVD F9, 8*16(RSP)