From d696e31b6ed63923c1e3a9b7e062ad59658cf7b8 Mon Sep 17 00:00:00 2001 From: "Jason A. Donenfeld" Date: Wed, 9 Dec 2020 14:08:45 +0100 Subject: [PATCH] WireGuardKitGo: rebase boottime patch onto Go 1.15.6 Signed-off-by: Jason A. Donenfeld --- README.md | 2 +- .../goruntime-boottime-over-monotonic.diff | 50 +++++-------------- 2 files changed, 13 insertions(+), 39 deletions(-) diff --git a/README.md b/README.md index 9b5283a..953ea63 100644 --- a/README.md +++ b/README.md @@ -18,7 +18,7 @@ $ cp Sources/WireGuardApp/Config/Developer.xcconfig.template Sources/WireGuardAp $ vim Sources/WireGuardApp/Config/Developer.xcconfig ``` -- Install swiftlint and go 1.13.4: +- Install swiftlint and go 1.15: ``` $ brew install swiftlint go diff --git a/Sources/WireGuardKitGo/goruntime-boottime-over-monotonic.diff b/Sources/WireGuardKitGo/goruntime-boottime-over-monotonic.diff index 71b4ebf..d5212ef 100644 --- a/Sources/WireGuardKitGo/goruntime-boottime-over-monotonic.diff +++ b/Sources/WireGuardKitGo/goruntime-boottime-over-monotonic.diff @@ -1,6 +1,6 @@ -From 04f5695b83cd221e99e9fa6171b57e45177d5ad3 Mon Sep 17 00:00:00 2001 +From aa85e0f90c9031ff5be32296e9fed1637a2eceae Mon Sep 17 00:00:00 2001 From: "Jason A. Donenfeld" -Date: Wed, 27 Feb 2019 05:33:01 +0100 +Date: Wed, 9 Dec 2020 14:07:06 +0100 Subject: [PATCH] runtime: use libc_mach_continuous_time in nanotime on Darwin This makes timers account for having expired while a computer was @@ -9,19 +9,19 @@ continuous_time absolute_time, except that it takes into account time spent in suspend. Fixes #24595 + +Change-Id: Ia3282e8bd86f95ad2b76427063e60a005563f4eb --- src/runtime/sys_darwin.go | 2 +- - src/runtime/sys_darwin_386.s | 2 +- src/runtime/sys_darwin_amd64.s | 2 +- - src/runtime/sys_darwin_arm.s | 2 +- src/runtime/sys_darwin_arm64.s | 2 +- - 5 files changed, 5 insertions(+), 5 deletions(-) + 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/runtime/sys_darwin.go b/src/runtime/sys_darwin.go -index 376f76dbc5..a0677a83f6 100644 +index 06474434c9..6f7ca37122 100644 --- a/src/runtime/sys_darwin.go +++ b/src/runtime/sys_darwin.go -@@ -431,7 +431,7 @@ func setNonblock(fd int32) { +@@ -469,7 +469,7 @@ func setNonblock(fd int32) { //go:cgo_import_dynamic libc_usleep usleep "/usr/lib/libSystem.B.dylib" //go:cgo_import_dynamic libc_mach_timebase_info mach_timebase_info "/usr/lib/libSystem.B.dylib" @@ -30,24 +30,11 @@ index 376f76dbc5..a0677a83f6 100644 //go:cgo_import_dynamic libc_gettimeofday gettimeofday "/usr/lib/libSystem.B.dylib" //go:cgo_import_dynamic libc_sigaction sigaction "/usr/lib/libSystem.B.dylib" //go:cgo_import_dynamic libc_pthread_sigmask pthread_sigmask "/usr/lib/libSystem.B.dylib" -diff --git a/src/runtime/sys_darwin_386.s b/src/runtime/sys_darwin_386.s -index e653c54f61..5a43fcbdc1 100644 ---- a/src/runtime/sys_darwin_386.s -+++ b/src/runtime/sys_darwin_386.s -@@ -199,7 +199,7 @@ TEXT runtime·nanotime_trampoline(SB),NOSPLIT,$0 - PUSHL BP - MOVL SP, BP - SUBL $8+(machTimebaseInfo__size+15)/16*16, SP -- CALL libc_mach_absolute_time(SB) -+ CALL libc_mach_continuous_time(SB) - MOVL 16+(machTimebaseInfo__size+15)/16*16(SP), CX - MOVL AX, 0(CX) - MOVL DX, 4(CX) diff --git a/src/runtime/sys_darwin_amd64.s b/src/runtime/sys_darwin_amd64.s -index 87c8db8c82..f962f24339 100644 +index 825852d673..5a8b994fb1 100644 --- a/src/runtime/sys_darwin_amd64.s +++ b/src/runtime/sys_darwin_amd64.s -@@ -97,7 +97,7 @@ TEXT runtime·nanotime_trampoline(SB),NOSPLIT,$0 +@@ -109,7 +109,7 @@ TEXT runtime·nanotime_trampoline(SB),NOSPLIT,$0 PUSHQ BP MOVQ SP, BP MOVQ DI, BX @@ -56,24 +43,11 @@ index 87c8db8c82..f962f24339 100644 MOVQ AX, 0(BX) MOVL timebase<>+machTimebaseInfo_numer(SB), SI MOVL timebase<>+machTimebaseInfo_denom(SB), DI // atomic read -diff --git a/src/runtime/sys_darwin_arm.s b/src/runtime/sys_darwin_arm.s -index 996f8028a3..5bd34b51be 100644 ---- a/src/runtime/sys_darwin_arm.s -+++ b/src/runtime/sys_darwin_arm.s -@@ -126,7 +126,7 @@ GLOBL timebase<>(SB),NOPTR,$(machTimebaseInfo__size) - - TEXT runtime·nanotime_trampoline(SB),NOSPLIT,$0 - MOVW R0, R8 -- BL libc_mach_absolute_time(SB) -+ BL libc_mach_continuous_time(SB) - MOVW R0, 0(R8) - MOVW R1, 4(R8) - MOVW timebase<>+machTimebaseInfo_numer(SB), R6 diff --git a/src/runtime/sys_darwin_arm64.s b/src/runtime/sys_darwin_arm64.s -index ac3ca74f63..5e91540f94 100644 +index 585d4f2c64..c556d88730 100644 --- a/src/runtime/sys_darwin_arm64.s +++ b/src/runtime/sys_darwin_arm64.s -@@ -121,7 +121,7 @@ GLOBL timebase<>(SB),NOPTR,$(machTimebaseInfo__size) +@@ -135,7 +135,7 @@ GLOBL timebase<>(SB),NOPTR,$(machTimebaseInfo__size) TEXT runtime·nanotime_trampoline(SB),NOSPLIT,$40 MOVD R0, R19 @@ -83,5 +57,5 @@ index ac3ca74f63..5e91540f94 100644 MOVW timebase<>+machTimebaseInfo_numer(SB), R20 MOVD $timebase<>+machTimebaseInfo_denom(SB), R21 -- -2.23.0 +2.29.2