aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorIan Lance Taylor <ian@gcc.gnu.org>2018-01-10 15:18:55 +0000
committerIan Lance Taylor <ian@gcc.gnu.org>2018-01-10 15:18:55 +0000
commitd0ac0d52e93267911a6ef1bcbde87bccdebd5058 (patch)
tree8e448f2f5bb776ee7297161dc7be9dd74e9d9161
parent8c6e19c1c24794163bc9114bb367c9d61b7f839c (diff)
downloadgcc-d0ac0d52e93267911a6ef1bcbde87bccdebd5058.zip
gcc-d0ac0d52e93267911a6ef1bcbde87bccdebd5058.tar.gz
gcc-d0ac0d52e93267911a6ef1bcbde87bccdebd5058.tar.bz2
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
-rw-r--r--gcc/go/gofrontend/MERGE2
-rw-r--r--libgo/go/cmd/go/internal/work/exec.go4
2 files changed, 4 insertions, 2 deletions
diff --git a/gcc/go/gofrontend/MERGE b/gcc/go/gofrontend/MERGE
index 6f8fa9c..cb13cf0 100644
--- a/gcc/go/gofrontend/MERGE
+++ b/gcc/go/gofrontend/MERGE
@@ -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.
diff --git a/libgo/go/cmd/go/internal/work/exec.go b/libgo/go/cmd/go/internal/work/exec.go
index f955573..963a515 100644
--- a/libgo/go/cmd/go/internal/work/exec.go
+++ b/libgo/go/cmd/go/internal/work/exec.go
@@ -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
}