cmd/go: check for another GCC error message
authorIan Lance Taylor <ian@gcc.gnu.org>
Wed, 10 Jan 2018 15:18:55 +0000 (15:18 +0000)
committerIan Lance Taylor <ian@gcc.gnu.org>
Wed, 10 Jan 2018 15:18:55 +0000 (15:18 +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.

    Reviewed-on: https://go-review.googlesource.com/87137

From-SVN: r256433

gcc/go/gofrontend/MERGE
libgo/go/cmd/go/internal/work/exec.go

index 6f8fa9c4d0d4a5988362983dedb4f5708db8f4e5..cb13cf093046ded31c68c548fbdd1cba0e94b5c3 100644 (file)
@@ -1,4 +1,4 @@
-c22eb29a62b4fd72ad2ea09ebe5fcea5b8ed78b8
+87df767807acac466edb3bb6445ad83a48141d17
 
 The first line of this file holds the git revision number of the last
 merge done from the gofrontend repository.
index f955573e297d2211933f380e9f40fa9770723a32..963a5151ead44185b0296d59a8ff2c188936cfb2 100644 (file)
@@ -1857,9 +1857,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
 }