Commit d0ac0d52 by Ian Lance Taylor

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.
    
    Reviewed-on: https://go-review.googlesource.com/87137

From-SVN: r256433
parent 8c6e19c1
c22eb29a62b4fd72ad2ea09ebe5fcea5b8ed78b8 87df767807acac466edb3bb6445ad83a48141d17
The first line of this file holds the git revision number of the last The first line of this file holds the git revision number of the last
merge done from the gofrontend repository. merge done from the gofrontend repository.
...@@ -1857,9 +1857,11 @@ func (b *Builder) gccSupportsFlag(compiler []string, flag string) bool { ...@@ -1857,9 +1857,11 @@ func (b *Builder) gccSupportsFlag(compiler []string, flag string) bool {
// GCC says "unrecognized command line option". // GCC says "unrecognized command line option".
// clang says "unknown argument". // clang says "unknown argument".
// Older versions of GCC say "unrecognised debug output level". // 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")) && supported := !bytes.Contains(out, []byte("unrecognized")) &&
!bytes.Contains(out, []byte("unknown")) && !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 b.flagCache[key] = supported
return supported return supported
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment