cmd/go: use gccSupportsFlag for -fsplit-stack
authorIan Lance Taylor <ian@gcc.gnu.org>
Fri, 14 Jul 2017 22:21:37 +0000 (22:21 +0000)
committerIan Lance Taylor <ian@gcc.gnu.org>
Fri, 14 Jul 2017 22:21:37 +0000 (22:21 +0000)
    Don't assume that all (or only) 386/amd64 compilers support
    -fsplit-stack.

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

From-SVN: r250216

gcc/go/gofrontend/MERGE
libgo/go/cmd/go/build.go

index efa2c01..5c56021 100644 (file)
@@ -1,4 +1,4 @@
-9294e79fced202ade7eb236bbe78b766e7e0374f
+a77b1091fa83cfaf200e6dad26e92e42483bae43
 
 The first line of this file holds the git revision number of the last
 merge done from the gofrontend repository.
index 72265ef..9623b9c 100644 (file)
@@ -3092,8 +3092,7 @@ func (tools gccgoToolchain) cc(b *builder, p *Package, objdir, ofile, cfile stri
        if pkgpath := gccgoCleanPkgpath(p); pkgpath != "" {
                defs = append(defs, `-D`, `GOPKGPATH="`+pkgpath+`"`)
        }
-       switch goarch {
-       case "386", "amd64":
+       if b.gccSupportsFlag("-fsplit-stack") {
                defs = append(defs, "-fsplit-stack")
        }
        defs = tools.maybePIC(defs)
@@ -3428,8 +3427,7 @@ func (b *builder) cgo(a *action, cgoExe, obj string, pcCFLAGS, pcLDFLAGS, cgofil
        }
 
        if _, ok := buildToolchain.(gccgoToolchain); ok {
-               switch goarch {
-               case "386", "amd64":
+               if b.gccSupportsFlag("-fsplit-stack") {
                        cgoCFLAGS = append(cgoCFLAGS, "-fsplit-stack")
                }
                cgoflags = append(cgoflags, "-gccgo")