From 7ec55088108d97c66040434671921e6c6b590ff0 Mon Sep 17 00:00:00 2001 From: Ian Lance Taylor Date: Wed, 13 Jan 2016 10:45:54 -0800 Subject: [PATCH] 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 --- src/cmd/go/build.go | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) 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.