From: Rahul Chaudhry Date: Mon, 9 Nov 2015 07:30:43 +0000 (-0800) Subject: cmd/go: set buildmode=pie default for android/arm64. X-Git-Tag: go1.6beta1~438 X-Git-Url: http://www.git.cypherpunks.su/?a=commitdiff_plain;h=f7c7ed7c41b28ba999f81ab1a3f66c2e35468fd0;p=gostls13.git cmd/go: set buildmode=pie default for android/arm64. Just like android/arm, android/arm64 refuses to execute non-PIE binaries. In addition, starting from the M release (Marshmallow), Android refuses to execute binaries with any text relocations (this was just a warning in the L release). This makes "-shared" necessary as well when building executables for Android. Change-Id: Id8802de5be98ff472fc370f8d22ffbde316aaf1e Reviewed-on: https://go-review.googlesource.com/16744 Reviewed-by: Ian Lance Taylor --- diff --git a/src/cmd/go/build.go b/src/cmd/go/build.go index c110c7cc56..3d68715b01 100644 --- a/src/cmd/go/build.go +++ b/src/cmd/go/build.go @@ -361,7 +361,7 @@ func buildModeInit() { ldBuildmode = "c-shared" case "default": switch platform { - case "android/arm", "android/amd64": + case "android/arm", "android/arm64", "android/amd64": codegenArg = "-shared" ldBuildmode = "pie" default: @@ -375,7 +375,7 @@ func buildModeInit() { fatalf("-buildmode=pie not supported by gccgo") } else { switch platform { - case "linux/arm", "android/arm", "linux/amd64", "android/amd64", "linux/arm64", "linux/ppc64le": + case "linux/arm", "android/arm", "linux/amd64", "android/amd64", "linux/arm64", "android/arm64", "linux/ppc64le": codegenArg = "-shared" default: fatalf("-buildmode=pie not supported on %s\n", platform)