From: Ian Lance Taylor Date: Wed, 13 Jan 2016 18:45:54 +0000 (-0800) Subject: cmd/go: fix gccSupportsNoPie for old GCC's that don't exit 0 X-Git-Tag: go1.6beta2~5 X-Git-Url: http://www.git.cypherpunks.su/?a=commitdiff_plain;h=7ec55088108d97c66040434671921e6c6b590ff0;p=gostls13.git cmd/go: fix gccSupportsNoPie for old GCC's that don't exit 0 GCC 4.8 exits 1 on an unrecognized option, but GCC 4.4 and 4.5 exit 0. I didn't check other versions, or try to figure out just when this changed. Fixes #13937. Change-Id: If193e9053fbb535999c9bde99f430f465a8c7c57 Reviewed-on: https://go-review.googlesource.com/18597 Run-TryBot: Ian Lance Taylor Reviewed-by: Brad Fitzpatrick TryBot-Result: Gobot Gobot --- diff --git a/src/cmd/go/build.go b/src/cmd/go/build.go index 565ccec591..ebeb11cf63 100644 --- a/src/cmd/go/build.go +++ b/src/cmd/go/build.go @@ -2941,8 +2941,8 @@ func (b *builder) gccSupportsNoPie() bool { cmd := exec.Command(cmdArgs[0], cmdArgs[1:]...) cmd.Dir = b.work cmd.Env = envForDir(cmd.Dir, os.Environ()) - err := cmd.Run() - return err == nil + out, err := cmd.CombinedOutput() + return err == nil && !bytes.Contains(out, []byte("unrecognized")) } // gccArchArgs returns arguments to pass to gcc based on the architecture.