diff -u -r ../go/src/cmd/go/build.go ./src/cmd/go/build.go --- ../go/src/cmd/go/build.go 2016-08-15 18:47:58.000000000 -0400 +++ ./src/cmd/go/build.go 2016-08-18 18:05:18.471655968 -0400 @@ -2846,7 +2846,7 @@ ldflags = append(ldflags, "-Wl,-r", "-nostdlib", "-Wl,--whole-archive", "-lgolibbegin", "-Wl,--no-whole-archive") if b.gccSupportsNoPie() { - ldflags = append(ldflags, "-no-pie") + ldflags = append(ldflags, "-nopie") } // We are creating an object file, so we don't want a build ID. @@ -3029,7 +3029,7 @@ } } - if strings.Contains(a[0], "clang") { + if runtime.GOOS == "android" { // disable ASCII art in clang errors, if possible a = append(a, "-fno-caret-diagnostics") // clang is too smart about command-line arguments @@ -3064,7 +3064,7 @@ // -no-pie must be passed when doing a partial link with -Wl,-r. But -no-pie is // not supported by all compilers. func (b *builder) gccSupportsNoPie() bool { - return b.gccSupportsFlag("-no-pie") + return b.gccSupportsFlag("-nopie") } // gccSupportsFlag checks to see if the compiler supports a flag. @@ -3383,7 +3383,7 @@ ldflags := stringList(bareLDFLAGS, "-Wl,-r", "-nostdlib", staticLibs) if b.gccSupportsNoPie() { - ldflags = append(ldflags, "-no-pie") + ldflags = append(ldflags, "-nopie") } // We are creating an object file, so we don't want a build ID.