diff --git a/src/internal/buildcfg/cfg.go b/src/internal/buildcfg/cfg.go index e115d7f95a0fcfaecdc7c121da47cb8f10cfe84a..107a4f368a5de766d7188ebab6745f67d1919bfa 100644 --- a/src/internal/buildcfg/cfg.go +++ b/src/internal/buildcfg/cfg.go @@ -233,9 +233,15 @@ func ParseGoarm64(v string) (g Goarm64Features, e error) { } switch v { - case "v8.0", "v8.1", "v8.2", "v8.3", "v8.4", "v8.5", "v8.6", "v8.7", "v8.8", "v8.9", + case "v8.0": + g.Version = v + case "v8.1", "v8.2", "v8.3", "v8.4", "v8.5", "v8.6", "v8.7", "v8.8", "v8.9", "v9.0", "v9.1", "v9.2", "v9.3", "v9.4", "v9.5": g.Version = v + g.LSE = true + if g.KPAtomicOpt { + g.LSE = false + } default: e = fmt.Errorf("invalid GOARM64: must start with v8.{0-9} or v9.{0-5} and may optionally end in %q, %q and/or %q", lseOpt, cryptoOpt, kpAtomicOpt) diff --git a/src/internal/buildcfg/cfg_test.go b/src/internal/buildcfg/cfg_test.go index 1807ef891315c8c7fd0881dc67aef20d3728d78c..08b289fe1101f81ba5bd5283bdbea9a541bab389 100644 --- a/src/internal/buildcfg/cfg_test.go +++ b/src/internal/buildcfg/cfg_test.go @@ -68,10 +68,6 @@ func TestConfigFlags(t *testing.T) { if goarm64().Version != "v8.0" || goarm64().LSE != true || goarm64().Crypto != true { t.Errorf("Wrong parsing of GOARM64=v8.0,lse,crypto") } - os.Setenv("GOARM64", "v9.0") - if goarm64().Version != "v9.0" || goarm64().LSE != false || goarm64().Crypto != false { - t.Errorf("Wrong parsing of GOARM64=v9.0") - } } func TestGoarm64FeaturesSupports(t *testing.T) {