]> Cypherpunks repositories - gostls13.git/commitdiff
cmd/go: set environment LANG=C when getting compiler version
authorjokemanfire <huzuzong123@gmail.com>
Fri, 6 Sep 2024 13:42:49 +0000 (13:42 +0000)
committerMichael Matloob <matloob@golang.org>
Thu, 12 Sep 2024 14:57:15 +0000 (14:57 +0000)
Compiler's version will not work well if gcc output have
different language. Like 'gcc -v', it may not output:
'gcc version xx.xx.x'

 Fixes #69221

Change-Id: I4adcea79dfaaf5853dfb6e718468f8530c67da6a
GitHub-Last-Rev: 069787c0836f9be10e4bf71dd6c468ae47f6161e
GitHub-Pull-Request: golang/go#69223
Reviewed-on: https://go-review.googlesource.com/c/go/+/610215
LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com>
Reviewed-by: DING HU <huzuzong123@gmail.com>
Reviewed-by: Ian Lance Taylor <iant@google.com>
Reviewed-by: Michael Matloob <matloob@golang.org>
src/cmd/go/internal/work/init.go

index 7d0921f0cc900b5463574d2de2590fd078cb9f5b..175912bb853d4939c2e12d526d8ad8edc175c75d 100644 (file)
@@ -357,7 +357,9 @@ func compilerVersion() (version, error) {
                compiler.err = func() error {
                        compiler.name = "unknown"
                        cc := os.Getenv("CC")
-                       out, err := exec.Command(cc, "--version").Output()
+                       cmd := exec.Command(cc, "--version")
+                       cmd.Env = append(cmd.Environ(), "LANG=C")
+                       out, err := cmd.Output()
                        if err != nil {
                                // Compiler does not support "--version" flag: not Clang or GCC.
                                return err
@@ -366,7 +368,9 @@ func compilerVersion() (version, error) {
                        var match [][]byte
                        if bytes.HasPrefix(out, []byte("gcc")) {
                                compiler.name = "gcc"
-                               out, err := exec.Command(cc, "-v").CombinedOutput()
+                               cmd := exec.Command(cc, "-v")
+                               cmd.Env = append(cmd.Environ(), "LANG=C")
+                               out, err := cmd.CombinedOutput()
                                if err != nil {
                                        // gcc, but does not support gcc's "-v" flag?!
                                        return err