From f7c7ed7c41b28ba999f81ab1a3f66c2e35468fd0 Mon Sep 17 00:00:00 2001 From: Rahul Chaudhry Date: Sun, 8 Nov 2015 23:30:43 -0800 Subject: [PATCH] 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 --- src/cmd/go/build.go | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) 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) -- 2.48.1