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
This commit is contained in:
Ian Lance Taylor 2018-01-10 15:18:55 +00:00
parent 8c6e19c1c2
commit d0ac0d52e9
2 changed files with 4 additions and 2 deletions

View 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.

View 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
}