diff options
author | Ian Lance Taylor <ian@gcc.gnu.org> | 2018-03-15 16:56:24 +0000 |
---|---|---|
committer | Ian Lance Taylor <ian@gcc.gnu.org> | 2018-03-15 16:56:24 +0000 |
commit | 8bb2726d08ae3dd89c7085a7972b5a144ccea270 (patch) | |
tree | 48dcbd03a1b072bb15acc6ce494b1c54c6964754 | |
parent | e0c079cba4a2069e4e1337d610542c9fec81f9be (diff) | |
download | gcc-8bb2726d08ae3dd89c7085a7972b5a144ccea270.zip gcc-8bb2726d08ae3dd89c7085a7972b5a144ccea270.tar.gz gcc-8bb2726d08ae3dd89c7085a7972b5a144ccea270.tar.bz2 |
cmd/go: force LANG=C when looking for compiler version
Tested by installing the gcc-locales package and running
LANG=de_DE.utf8 go build hello.go
Without this change, that fails, as described at
https://gcc.gnu.org/PR84765.
Reviewed-on: https://go-review.googlesource.com/100737
From-SVN: r258565
-rw-r--r-- | gcc/go/gofrontend/MERGE | 2 | ||||
-rw-r--r-- | libgo/go/cmd/go/internal/work/buildid.go | 13 |
2 files changed, 13 insertions, 2 deletions
diff --git a/gcc/go/gofrontend/MERGE b/gcc/go/gofrontend/MERGE index 807609b..6e4c73b 100644 --- a/gcc/go/gofrontend/MERGE +++ b/gcc/go/gofrontend/MERGE @@ -1,4 +1,4 @@ -ce28919112dbb234366816ab39ce060ad45e8ca9 +e4464efc767b8dee4f4c18ffaf6c891f7b9deee7 The first line of this file holds the git revision number of the last merge done from the gofrontend repository. diff --git a/libgo/go/cmd/go/internal/work/buildid.go b/libgo/go/cmd/go/internal/work/buildid.go index e2ae850..a08de26 100644 --- a/libgo/go/cmd/go/internal/work/buildid.go +++ b/libgo/go/cmd/go/internal/work/buildid.go @@ -234,7 +234,18 @@ func (b *Builder) gccgoToolID(name, language string) (string, error) { // compile an empty file on standard input. cmdline := str.StringList(cfg.BuildToolexec, name, "-###", "-x", language, "-c", "-") cmd := exec.Command(cmdline[0], cmdline[1:]...) - cmd.Env = base.EnvForDir(cmd.Dir, os.Environ()) + + // Strip any LANG or LC_ environment variables, and force + // LANG=C, so that we get the untranslated output. + var env []string + for _, e := range os.Environ() { + if !strings.HasPrefix(e, "LANG=") && !strings.HasPrefix(e, "LC_") { + env = append(env, e) + } + } + env = append(env, "LANG=C") + + cmd.Env = base.EnvForDir(cmd.Dir, env) out, err := cmd.CombinedOutput() if err != nil { return "", fmt.Errorf("%s: %v; output: %q", name, err, out) |