From 495ca38ac2a39a4990bb606ea01687e1c7f9f0e6 Mon Sep 17 00:00:00 2001 From: Russ Cox Date: Wed, 8 Feb 2023 14:02:55 -0500 Subject: [PATCH] runtime: skip darwin osinit_hack on ios Darwin needs the osinit_hack call to fix some bugs in the Apple libc that surface when Go programs call exec. On iOS, the functions that osinit_hack uses are not available, so signing fails. But on iOS exec is also unavailable, so the hack is not needed. Disable it there, which makes signing work again. Fixes #58323. Change-Id: I3f1472f852bb36c06854fe1f14aa27ad450c5945 (cherry picked from commit e95f1f1cedaa8284bb00dec23da292ef3821cd2e) --- src/runtime/sys_darwin.go | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/runtime/sys_darwin.go b/src/runtime/sys_darwin.go index 8bff695f5729d..5ba697e3047f4 100644 --- a/src/runtime/sys_darwin.go +++ b/src/runtime/sys_darwin.go @@ -213,7 +213,9 @@ func pthread_kill_trampoline() // //go:nosplit func osinit_hack() { - libcCall(unsafe.Pointer(abi.FuncPCABI0(osinit_hack_trampoline)), nil) + if GOOS == "darwin" { // not ios + libcCall(unsafe.Pointer(abi.FuncPCABI0(osinit_hack_trampoline)), nil) + } return } func osinit_hack_trampoline()