]> Cypherpunks repositories - gostls13.git/commitdiff
internal/cpu: enable support for GODEBUGCPU in non-experimental builds
authorMartin Möhrmann <moehrmann@google.com>
Fri, 12 Oct 2018 14:48:38 +0000 (16:48 +0200)
committerMartin Möhrmann <moehrmann@google.com>
Fri, 12 Oct 2018 15:40:45 +0000 (15:40 +0000)
Enabling GODEBUGCPU without the need to set GOEXPERIMENT=debugcpu  enables
trybots and builders to run tests for GODEBUGCPU features in upcoming CLs
that will implement the new syntax and features for non-experimental
GODEBUGCPU support from proposal golang.org/issue/27218.

Updates #27218

Change-Id: Icc69e51e736711a86b02b46bd441ffc28423beba
Reviewed-on: https://go-review.googlesource.com/c/141817
Run-TryBot: Martin Möhrmann <moehrmann@google.com>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
src/cmd/internal/objabi/util.go
src/internal/cpu/cpu.go
src/internal/cpu/cpu_test.go
src/internal/cpu/cpu_x86_test.go
src/runtime/proc.go

index ffd1c04d39fcd0bce480a564bc7dacf48a251f60..d1017322f0086b7d4b66857d4b63f0c48d1bb4ed 100644 (file)
@@ -105,7 +105,6 @@ var (
        Fieldtrack_enabled       int
        Preemptibleloops_enabled int
        Clobberdead_enabled      int
-       DebugCPU_enabled         int
 )
 
 // Toolchain experiments.
@@ -120,7 +119,6 @@ var exper = []struct {
        {"framepointer", &framepointer_enabled},
        {"preemptibleloops", &Preemptibleloops_enabled},
        {"clobberdead", &Clobberdead_enabled},
-       {"debugcpu", &DebugCPU_enabled},
 }
 
 var defaultExpstring = Expstring()
index bfb016c7f722d7e793e52a0ce9012e99d64e0489..54b100b1d4606f829c897d6da4e0c713b261f654 100644 (file)
@@ -6,8 +6,7 @@
 // used by the Go standard library.
 package cpu
 
-// DebugOptions is set to true by the runtime if go was compiled with GOEXPERIMENT=debugcpu
-// and GOOS is Linux or Darwin.
+// DebugOptions is set to true by the runtime if the OS supports GODEBUGCPU.
 // This should not be changed after it is initialized.
 var DebugOptions bool
 
@@ -139,8 +138,7 @@ type s390x struct {
 
 // Initialize examines the processor and sets the relevant variables above.
 // This is called by the runtime package early in program initialization,
-// before normal init functions are run. env is set by runtime on Linux and Darwin
-// if go was compiled with GOEXPERIMENT=debugcpu.
+// before normal init functions are run. env is set by runtime if the OS supports GODEBUGCPU.
 func Initialize(env string) {
        doinit()
        processOptions(env)
index d4115a1b87512c5d680738c3cc794f380d4fa806..04ab9eeecb87b2d6aff015b7ab28a9b44b8c6683 100644 (file)
@@ -13,14 +13,14 @@ import (
        "testing"
 )
 
-func MustHaveDebugOptionsEnabled(t *testing.T) {
+func MustHaveDebugOptionsSupport(t *testing.T) {
        if !DebugOptions {
-               t.Skipf("skipping test: cpu feature options not enabled")
+               t.Skipf("skipping test: cpu feature options not supported by OS")
        }
 }
 
 func runDebugOptionsTest(t *testing.T, test string, options string) {
-       MustHaveDebugOptionsEnabled(t)
+       MustHaveDebugOptionsSupport(t)
 
        testenv.MustHaveExec(t)
 
@@ -42,7 +42,7 @@ func TestDisableAllCapabilities(t *testing.T) {
 }
 
 func TestAllCapabilitiesDisabled(t *testing.T) {
-       MustHaveDebugOptionsEnabled(t)
+       MustHaveDebugOptionsSupport(t)
 
        if os.Getenv("GODEBUGCPU") != "all=0" {
                t.Skipf("skipping test: GODEBUGCPU=all=0 not set")
index d03306c907a69671e4651c5122875966282ab51d..c3ea7cb59035d731a82c718939ec37b49e108907 100644 (file)
@@ -34,7 +34,7 @@ func TestDisableSSE2(t *testing.T) {
 }
 
 func TestSSE2DebugOption(t *testing.T) {
-       MustHaveDebugOptionsEnabled(t)
+       MustHaveDebugOptionsSupport(t)
 
        if os.Getenv("GODEBUGCPU") != "sse2=0" {
                t.Skipf("skipping test: GODEBUGCPU=sse2=0 not set")
index f536b82aabe75125a286b23f85a14baa0e07a724..86c14997b1df53deb089008bf73accf2e64c1d84 100644 (file)
@@ -478,12 +478,12 @@ const (
 )
 
 // cpuinit extracts the environment variable GODEBUGCPU from the environment on
-// Linux and Darwin if the GOEXPERIMENT debugcpu was set and calls internal/cpu.Initialize.
+// Linux and Darwin and calls internal/cpu.Initialize.
 func cpuinit() {
        const prefix = "GODEBUGCPU="
        var env string
 
-       if haveexperiment("debugcpu") && (GOOS == "linux" || GOOS == "darwin") {
+       if GOOS == "linux" || GOOS == "darwin" {
                cpu.DebugOptions = true
 
                // Similar to goenv_unix but extracts the environment value for