]> Cypherpunks repositories - gostls13.git/commitdiff
cmd/go: set buildmode=pie default for android/arm64.
authorRahul Chaudhry <rahulchaudhry@chromium.org>
Mon, 9 Nov 2015 07:30:43 +0000 (23:30 -0800)
committerIan Lance Taylor <iant@golang.org>
Mon, 16 Nov 2015 18:32:57 +0000 (18:32 +0000)
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 <iant@golang.org>
src/cmd/go/build.go

index c110c7cc563e7e8b4082310ee304d88b1d2be7f2..3d68715b01f5f7b72e0e4b6bdde7c78f7eb348b4 100644 (file)
@@ -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)