diff options
author | bsiegert <bsiegert@pkgsrc.org> | 2016-10-04 18:45:22 +0000 |
---|---|---|
committer | bsiegert <bsiegert@pkgsrc.org> | 2016-10-04 18:45:22 +0000 |
commit | 3a1c3838c3e8415d47ba7a8b3415aebb47dec889 (patch) | |
tree | 2b9d9c23245ea45848150c1d830e2ec9aea60876 /lang/go14 | |
parent | 3b82f35a8c4047ca9ade059310a52827397027d7 (diff) | |
download | pkgsrc-3a1c3838c3e8415d47ba7a8b3415aebb47dec889.tar.gz |
Backport fixes for compiling under macOS Sierra from
https://github.com/golang/go/issues/16352.
Diffstat (limited to 'lang/go14')
-rw-r--r-- | lang/go14/Makefile | 4 | ||||
-rw-r--r-- | lang/go14/distinfo | 6 | ||||
-rw-r--r-- | lang/go14/patches/patch-src_runtime_sys__darwin__386.s | 23 | ||||
-rw-r--r-- | lang/go14/patches/patch-src_runtime_sys__darwin__amd64.s | 22 | ||||
-rw-r--r-- | lang/go14/patches/patch-src_syscall_syscall__darwin__386.go | 35 | ||||
-rw-r--r-- | lang/go14/patches/patch-src_syscall_syscall__darwin__amd64.go | 35 |
6 files changed, 122 insertions, 3 deletions
diff --git a/lang/go14/Makefile b/lang/go14/Makefile index bfa82c31b9d..b3a1c8b023a 100644 --- a/lang/go14/Makefile +++ b/lang/go14/Makefile @@ -1,10 +1,10 @@ -# $NetBSD: Makefile,v 1.8 2016/07/09 06:38:25 wiz Exp $ +# $NetBSD: Makefile,v 1.9 2016/10/04 18:45:22 bsiegert Exp $ .include "../../lang/go/version.mk" DISTNAME= go${GO14_VERSION}.src PKGNAME= go14-${GO14_VERSION} -PKGREVISION= 3 +PKGREVISION= 4 CATEGORIES= lang MASTER_SITES= https://storage.googleapis.com/golang/ PATCH_SITES= https://codereview.appspot.com/download/ diff --git a/lang/go14/distinfo b/lang/go14/distinfo index 0315e51ad6c..1f5ac8d2b17 100644 --- a/lang/go14/distinfo +++ b/lang/go14/distinfo @@ -1,4 +1,4 @@ -$NetBSD: distinfo,v 1.6 2016/02/21 14:32:24 bsiegert Exp $ +$NetBSD: distinfo,v 1.7 2016/10/04 18:45:22 bsiegert Exp $ SHA1 (go1.4.3.src.tar.gz) = 486db10dc571a55c8d795365070f66d343458c48 RMD160 (go1.4.3.src.tar.gz) = b1fbb2805a777c8107e7c946f36a881303ac5e35 @@ -33,5 +33,9 @@ SHA1 (patch-src_runtime_cgo_setenv.c) = f3b56885fa54cabf78944fad75c21f04bea5cd88 SHA1 (patch-src_runtime_netpoll__solaris.c) = ae399518bb02d6b898734a52dfa7fe18f041e1ec SHA1 (patch-src_runtime_os__solaris.c) = eec5b293fe4a72f58e4cd51cd23ea6e6fce714b6 SHA1 (patch-src_runtime_os__solaris.h) = c0a39aa6ab57eca7056178c87ebb00bb21236499 +SHA1 (patch-src_runtime_sys__darwin__386.s) = e352e039bba8435a48b88c76290b245731c299ed +SHA1 (patch-src_runtime_sys__darwin__amd64.s) = 3eccddc8228657db1480393f8476ddd68ac942ff SHA1 (patch-src_runtime_sys__solaris__amd64.s) = 88f2e3fc43b0d6e4f17ef06d3f4f27cfed3103c6 SHA1 (patch-src_runtime_thunk__solaris__amd64.s) = 2835cdc171ae3209c61ef804fbfbf22cdf68bf43 +SHA1 (patch-src_syscall_syscall__darwin__386.go) = 2f0986bdb199feaa73e933a1a75df87e5c7a8bff +SHA1 (patch-src_syscall_syscall__darwin__amd64.go) = 1bfba4b0f1e2fe6dee55b24f7f8d7cd89d05dea0 diff --git a/lang/go14/patches/patch-src_runtime_sys__darwin__386.s b/lang/go14/patches/patch-src_runtime_sys__darwin__386.s new file mode 100644 index 00000000000..5a29023a871 --- /dev/null +++ b/lang/go14/patches/patch-src_runtime_sys__darwin__386.s @@ -0,0 +1,23 @@ +$NetBSD: patch-src_runtime_sys__darwin__386.s,v 1.1 2016/10/04 18:45:22 bsiegert Exp $ + +--- src/runtime/sys_darwin_386.s.orig 2016-10-04 18:40:17.000000000 +0000 ++++ src/runtime/sys_darwin_386.s +@@ -182,11 +182,17 @@ timeloop: + + systime: + // Fall back to system call (usually first call in this thread) +- LEAL 12(SP), AX // must be non-nil, unused ++ LEAL 16(SP), AX // must be non-nil, unused + MOVL AX, 4(SP) + MOVL $0, 8(SP) // time zone pointer ++ MOVL $0, 12(SP) // required as of Sierra; Issue 16570 + MOVL $116, AX + INT $0x80 ++ CMPL AX, $0 ++ JNE inreg ++ MOVL 16(SP), AX ++ MOVL 20(SP), DX ++inreg: + // sec is in AX, usec in DX + // convert to DX:AX nsec + MOVL DX, BX diff --git a/lang/go14/patches/patch-src_runtime_sys__darwin__amd64.s b/lang/go14/patches/patch-src_runtime_sys__darwin__amd64.s new file mode 100644 index 00000000000..5dee5c149c1 --- /dev/null +++ b/lang/go14/patches/patch-src_runtime_sys__darwin__amd64.s @@ -0,0 +1,22 @@ +$NetBSD: patch-src_runtime_sys__darwin__amd64.s,v 1.1 2016/10/04 18:45:22 bsiegert Exp $ + +--- src/runtime/sys_darwin_amd64.s.orig 2016-10-04 18:40:17.000000000 +0000 ++++ src/runtime/sys_darwin_amd64.s +@@ -141,10 +141,16 @@ timeloop: + + systime: + // Fall back to system call (usually first call in this thread). +- MOVQ SP, DI // must be non-nil, unused ++ MOVQ SP, DI + MOVQ $0, SI ++ MOVQ $0, DX // required as of Sierra; Issue 16570 + MOVL $(0x2000000+116), AX + SYSCALL ++ CMPQ AX, $0 ++ JNE inreg ++ MOVQ 0(SP), AX ++ MOVL 8(SP), DX ++inreg: + // sec is in AX, usec in DX + // return nsec in AX + IMULQ $1000000000, AX diff --git a/lang/go14/patches/patch-src_syscall_syscall__darwin__386.go b/lang/go14/patches/patch-src_syscall_syscall__darwin__386.go new file mode 100644 index 00000000000..49d78caf302 --- /dev/null +++ b/lang/go14/patches/patch-src_syscall_syscall__darwin__386.go @@ -0,0 +1,35 @@ +$NetBSD: patch-src_syscall_syscall__darwin__386.go,v 1.1 2016/10/04 18:45:22 bsiegert Exp $ + +Support Mac OS Sierra. https://github.com/golang/go/issues/16352 + +--- src/syscall/syscall_darwin_386.go.orig 2015-09-23 04:37:37.000000000 +0000 ++++ src/syscall/syscall_darwin_386.go +@@ -26,14 +26,21 @@ func NsecToTimeval(nsec int64) (tv Timev + } + + //sysnb gettimeofday(tp *Timeval) (sec int32, usec int32, err error) +-func Gettimeofday(tv *Timeval) (err error) { +- // The tv passed to gettimeofday must be non-nil +- // but is otherwise unused. The answers come back +- // in the two registers. ++func Gettimeofday(tv *Timeval) error { ++ // The tv passed to gettimeofday must be non-nil. ++ // Before macOS Sierra (10.12), tv was otherwise unused and ++ // the answers came back in the two registers. ++ // As of Sierra, gettimeofday return zeros and populates ++ // tv itself. + sec, usec, err := gettimeofday(tv) +- tv.Sec = int32(sec) +- tv.Usec = int32(usec) +- return err ++ if err != nil { ++ return err ++ } ++ if sec != 0 || usec != 0 { ++ tv.Sec = int32(sec) ++ tv.Usec = int32(usec) ++ } ++ return nil + } + + func SetKevent(k *Kevent_t, fd, mode, flags int) { diff --git a/lang/go14/patches/patch-src_syscall_syscall__darwin__amd64.go b/lang/go14/patches/patch-src_syscall_syscall__darwin__amd64.go new file mode 100644 index 00000000000..68413604582 --- /dev/null +++ b/lang/go14/patches/patch-src_syscall_syscall__darwin__amd64.go @@ -0,0 +1,35 @@ +$NetBSD: patch-src_syscall_syscall__darwin__amd64.go,v 1.1 2016/10/04 18:45:22 bsiegert Exp $ + +Support Mac OS Sierra. https://github.com/golang/go/issues/16352 + +--- src/syscall/syscall_darwin_amd64.go.orig 2015-09-23 04:37:37.000000000 +0000 ++++ src/syscall/syscall_darwin_amd64.go +@@ -26,14 +26,21 @@ func NsecToTimeval(nsec int64) (tv Timev + } + + //sysnb gettimeofday(tp *Timeval) (sec int64, usec int32, err error) +-func Gettimeofday(tv *Timeval) (err error) { +- // The tv passed to gettimeofday must be non-nil +- // but is otherwise unused. The answers come back +- // in the two registers. ++func Gettimeofday(tv *Timeval) error { ++ // The tv passed to gettimeofday must be non-nil. ++ // Before macOS Sierra (10.12), tv was otherwise unused and ++ // the answers came back in the two registers. ++ // As of Sierra, gettimeofday return zeros and populates ++ // tv itself. + sec, usec, err := gettimeofday(tv) +- tv.Sec = sec +- tv.Usec = usec +- return err ++ if err != nil { ++ return err ++ } ++ if sec != 0 || usec != 0 { ++ tv.Sec = sec ++ tv.Usec = usec ++ } ++ return nil + } + + func SetKevent(k *Kevent_t, fd, mode, flags int) { |