From: Ian Lance Taylor Date: Wed, 10 Jan 2018 14:28:59 +0000 (-0800) Subject: cmd/go: check for another GCC error message X-Git-Tag: go1.10beta2~8 X-Git-Url: http://www.git.cypherpunks.su/?a=commitdiff_plain;h=f7d8098a7b6148811824bf50ec32c8f8d0a35d12;p=gostls13.git cmd/go: check for another GCC error message GCC always recognizes the -fsplit-stack option, but then tests whether it is supported by the selected target. If not, it reports cc1: error: ‘-fsplit-stack’ is not supported by this compiler configuration Check for that error message when deciding whether a compiler option works. Change-Id: I2eef8d550bbecba3a087869df2c7351280c77290 Reviewed-on: https://go-review.googlesource.com/87136 Run-TryBot: Ian Lance Taylor TryBot-Result: Gobot Gobot Reviewed-by: Brad Fitzpatrick Reviewed-by: Austin Clements --- diff --git a/src/cmd/go/internal/work/exec.go b/src/cmd/go/internal/work/exec.go index 195437d220..a91ee7702c 100644 --- a/src/cmd/go/internal/work/exec.go +++ b/src/cmd/go/internal/work/exec.go @@ -1849,9 +1849,11 @@ func (b *Builder) gccSupportsFlag(compiler []string, flag string) bool { // GCC says "unrecognized command line option". // clang says "unknown argument". // Older versions of GCC say "unrecognised debug output level". + // For -fsplit-stack GCC says "'-fsplit-stack' is not supported". supported := !bytes.Contains(out, []byte("unrecognized")) && !bytes.Contains(out, []byte("unknown")) && - !bytes.Contains(out, []byte("unrecognised")) + !bytes.Contains(out, []byte("unrecognised")) && + !bytes.Contains(out, []byte("is not supported")) b.flagCache[key] = supported return supported }