]> Cypherpunks repositories - gostls13.git/commitdiff
cmd/go: check for another GCC error message
authorIan Lance Taylor <iant@golang.org>
Wed, 10 Jan 2018 14:28:59 +0000 (06:28 -0800)
committerIan Lance Taylor <iant@golang.org>
Wed, 10 Jan 2018 20:46:52 +0000 (20:46 +0000)
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 <iant@golang.org>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
Reviewed-by: Austin Clements <austin@google.com>
src/cmd/go/internal/work/exec.go

index 195437d220860de8aa70039cf4babcb55cdf3be9..a91ee7702c5c982dafc810e8d13044f72cc8915e 100644 (file)
@@ -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
 }