From f0cf740733b8cb53bc62e66f5e2a45385c06d726 Mon Sep 17 00:00:00 2001 From: Russ Cox Date: Mon, 17 Jul 2017 10:45:27 -0400 Subject: [PATCH] cmd/compile: omit X:framepointer in compile version Framepointer is the default now. Only print an X: list if the settings are _not_ the default. Before: $ go tool compile -V compile version devel +a5f30d9508 Sun Jul 16 14:43:48 2017 -0400 X:framepointer $ go1.8 tool compile -V compile version go1.8 X:framepointer $ After: $ go tool compile -V compile version devel +a5f30d9508 Sun Jul 16 14:43:48 2017 -0400 $ go1.9 tool compile -V # imagined compile version go1.9 $ Perpetuates #18317. Change-Id: I981ba5c62be32e650a166fc9740703122595639b Reviewed-on: https://go-review.googlesource.com/49252 Run-TryBot: Russ Cox Reviewed-by: Brad Fitzpatrick --- src/cmd/compile/internal/gc/main.go | 2 +- src/cmd/internal/objabi/util.go | 9 +++++++-- test/nosplit.go | 4 ++++ 3 files changed, 12 insertions(+), 3 deletions(-) diff --git a/src/cmd/compile/internal/gc/main.go b/src/cmd/compile/internal/gc/main.go index 5e30302970..2b61564ad8 100644 --- a/src/cmd/compile/internal/gc/main.go +++ b/src/cmd/compile/internal/gc/main.go @@ -104,7 +104,7 @@ func hidePanic() { func doversion() { p := objabi.Expstring() - if p == "X:none" { + if p == objabi.DefaultExpstring() { p = "" } sep := "" diff --git a/src/cmd/internal/objabi/util.go b/src/cmd/internal/objabi/util.go index 811fdd33d4..1da05021f5 100644 --- a/src/cmd/internal/objabi/util.go +++ b/src/cmd/internal/objabi/util.go @@ -46,7 +46,6 @@ func Getgoextlinkenabled() string { } func init() { - framepointer_enabled = 1 // default for _, f := range strings.Split(goexperiment, ",") { if f != "" { addexp(f) @@ -80,7 +79,7 @@ func addexp(s string) { } var ( - framepointer_enabled int + framepointer_enabled int = 1 Fieldtrack_enabled int Preemptibleloops_enabled int Clobberdead_enabled int @@ -100,6 +99,12 @@ var exper = []struct { {"clobberdead", &Clobberdead_enabled}, } +var defaultExpstring = Expstring() + +func DefaultExpstring() string { + return defaultExpstring +} + func Expstring() string { buf := "X" for i := range exper { diff --git a/test/nosplit.go b/test/nosplit.go index 3244df53c5..989d8ccba7 100644 --- a/test/nosplit.go +++ b/test/nosplit.go @@ -198,6 +198,10 @@ func main() { goarch = runtime.GOARCH } + // Frame pointer is on by default now. + // golang.org/issue/18317. + return + version, err := exec.Command("go", "tool", "compile", "-V").Output() if err != nil { bug() -- 2.48.1