From 12e11e75235a7df2f118becac997a0aca3bb73b0 Mon Sep 17 00:00:00 2001 From: qiulaidongfeng <2645477756@qq.com> Date: Sun, 11 May 2025 01:09:16 +0800 Subject: [PATCH] cmd/go: fix not print GCCGO when it's not the default Fixes #69994 Change-Id: I2a23e5998b7421fd5ae0fdb68303d3244361b341 Reviewed-on: https://go-review.googlesource.com/c/go/+/671635 Reviewed-by: Michael Matloob Reviewed-by: Michael Matloob Reviewed-by: Sean Liao LUCI-TryBot-Result: Go LUCI Reviewed-by: Michael Knyszek --- src/cmd/go/internal/envcmd/env.go | 2 +- src/cmd/go/internal/work/gccgo.go | 4 ++++ src/cmd/go/testdata/script/env_changed.txt | 3 +++ 3 files changed, 8 insertions(+), 1 deletion(-) diff --git a/src/cmd/go/internal/envcmd/env.go b/src/cmd/go/internal/envcmd/env.go index b60e2adbe5..6ad6954dd5 100644 --- a/src/cmd/go/internal/envcmd/env.go +++ b/src/cmd/go/internal/envcmd/env.go @@ -142,7 +142,7 @@ func MkEnv() []cfg.EnvVar { if work.GccgoBin != "" { env = append(env, cfg.EnvVar{Name: "GCCGO", Value: work.GccgoBin, Changed: true}) } else { - env = append(env, cfg.EnvVar{Name: "GCCGO", Value: work.GccgoName}) + env = append(env, cfg.EnvVar{Name: "GCCGO", Value: work.GccgoName, Changed: work.GccgoChanged}) } goarch, val, changed := cfg.GetArchEnv() diff --git a/src/cmd/go/internal/work/gccgo.go b/src/cmd/go/internal/work/gccgo.go index bdd76f6364..b42e92ea69 100644 --- a/src/cmd/go/internal/work/gccgo.go +++ b/src/cmd/go/internal/work/gccgo.go @@ -27,6 +27,7 @@ import ( type gccgoToolchain struct{} var GccgoName, GccgoBin string +var GccgoChanged bool var gccgoErr error func init() { @@ -34,6 +35,9 @@ func init() { if GccgoName == "" { GccgoName = "gccgo" } + if GccgoName != "gccgo" { + GccgoChanged = true + } GccgoBin, gccgoErr = pathcache.LookPath(GccgoName) } diff --git a/src/cmd/go/testdata/script/env_changed.txt b/src/cmd/go/testdata/script/env_changed.txt index 05fb71d020..da95600627 100644 --- a/src/cmd/go/testdata/script/env_changed.txt +++ b/src/cmd/go/testdata/script/env_changed.txt @@ -12,6 +12,7 @@ env CGO_CFLAGS=nodefault env CGO_CPPFLAGS=nodefault env GOFIPS140=latest [cgo] env CGO_ENABLED=0 +env GCCGO=nodefault go env -changed # linux output like GOTOOLCHAIN='local' @@ -24,6 +25,7 @@ stdout 'CGO_CFLAGS=''?nodefault''?' stdout 'CGO_CPPFLAGS=''?nodefault''?' stdout 'GOFIPS140=''?latest''?' [cgo] stdout 'CGO_ENABLED=''?0''?' +stdout 'GCCGO=''?nodefault''?' go env -changed -json stdout '"GOTOOLCHAIN": "local"' @@ -34,6 +36,7 @@ stdout '"CGO_CFLAGS": "nodefault"' stdout '"CGO_CPPFLAGS": "nodefault"' stdout '"GOFIPS140": "latest"' [cgo] stdout '"CGO_ENABLED": "0"' +stdout '"GCCGO": "nodefault"' [GOOS:windows] env GOOS=linux [!GOOS:windows] env GOOS=windows -- 2.51.0