diff --git a/src/runtime/secret/asm_amd64.s b/src/runtime/secret/asm_amd64.s index 7011afc5eb7..0f2a4747b46 100644 --- a/src/runtime/secret/asm_amd64.s +++ b/src/runtime/secret/asm_amd64.s @@ -2,6 +2,8 @@ // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. +//go:build goexperiment.runtimesecret + // Note: this assembly file is used for testing only. // We need to access registers directly to properly test // that secrets are erased and go test doesn't like to conditionally @@ -208,6 +210,6 @@ noavx512: // registers contain secrets. // It also tests the path from G stack to M stack // to scheduler and back. - CALL ·delay(SB) + CALL runtime∕secret·delay(SB) RET diff --git a/src/runtime/secret/asm_arm64.s b/src/runtime/secret/asm_arm64.s index 1d7f7c1c924..6fa625adf6f 100644 --- a/src/runtime/secret/asm_arm64.s +++ b/src/runtime/secret/asm_arm64.s @@ -2,6 +2,8 @@ // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. +//go:build goexperiment.runtimesecret + // Note: this assembly file is used for testing only. // We need to access registers directly to properly test // that secrets are erased and go test doesn't like to conditionally diff --git a/src/runtime/secret/stubs.go b/src/runtime/secret/stubs.go index ec66ef2729a..dd9ed04df3a 100644 --- a/src/runtime/secret/stubs.go +++ b/src/runtime/secret/stubs.go @@ -2,7 +2,7 @@ // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. -//go:build arm64 || amd64 +//go:build goexperiment.runtimesecret && (arm64 || amd64) // testing stubs, these are implemented in assembly in // asm_$GOARCH.s @@ -30,3 +30,14 @@ func spillRegisters(p unsafe.Pointer) uintptr // //go:noescape func useSecret(secret []byte) + +// callback from assembly +func delay() { + sleep(1_000_000) +} + +// linknamed to avoid package importing time +// for just testing code +// +//go:linkname sleep time.Sleep +func sleep(int64) diff --git a/src/runtime/secret/testdata/crash.go b/src/runtime/secret/testdata/crash.go index cf48fb7d44c..1ee1ea6b8e0 100644 --- a/src/runtime/secret/testdata/crash.go +++ b/src/runtime/secret/testdata/crash.go @@ -18,13 +18,6 @@ import ( "weak" ) -// callback from assembly -// -//go:linkname delay main.delay -func delay() { - time.Sleep(1 * time.Millisecond) -} - // Same secret as in ../../crash_test.go var secretStore = [8]byte{ 0x00,