pkgsrc-Changes-HG archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

[pkgsrc/trunk]: pkgsrc/lang/go114 go114: work around aarch64 signal handler i...



details:   https://anonhg.NetBSD.org/pkgsrc/rev/886a713fa0d1
branches:  trunk
changeset: 428298:886a713fa0d1
user:      tnn <tnn%pkgsrc.org@localhost>
date:      Mon Apr 27 03:21:35 2020 +0000

description:
go114: work around aarch64 signal handler issue

diffstat:

 lang/go114/distinfo                                       |   3 +-
 lang/go114/patches/patch-src_runtime_sys__netbsd__arm64.s |  20 +++++++++++++++
 2 files changed, 22 insertions(+), 1 deletions(-)

diffs (39 lines):

diff -r 877a039e7255 -r 886a713fa0d1 lang/go114/distinfo
--- a/lang/go114/distinfo       Mon Apr 27 02:22:10 2020 +0000
+++ b/lang/go114/distinfo       Mon Apr 27 03:21:35 2020 +0000
@@ -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_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 -r 877a039e7255 -r 886a713fa0d1 lang/go114/patches/patch-src_runtime_sys__netbsd__arm64.s
--- /dev/null   Thu Jan 01 00:00:00 1970 +0000
+++ b/lang/go114/patches/patch-src_runtime_sys__netbsd__arm64.s Mon Apr 27 03:21:35 2020 +0000
@@ -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)



Home | Main Index | Thread Index | Old Index