Commit 81c7beb0 authored by Elias Naur's avatar Elias Naur

cmd/dist: set buildmode=pie on Android

Android refuses to run non-PIE binaries, a restriction already
encoded in the cmd/go tool's buildModeInit function. This CL adds
the necessary flags to cmd/dist to make ./make.bash run on an
Android device.

Change-Id: I162084f573befaa41dcb47a2b78448bce5b83d35
Reviewed-on: https://go-review.googlesource.com/c/go/+/170943
Run-TryBot: Elias Naur <mail@eliasnaur.com>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: default avatarIan Lance Taylor <iant@golang.org>
Reviewed-by: default avatarEmmanuel Odeke <emm.odeke@gmail.com>
parent 00530918
...@@ -657,7 +657,11 @@ func runInstall(dir string, ch chan struct{}) { ...@@ -657,7 +657,11 @@ func runInstall(dir string, ch chan struct{}) {
if elem == "go" { if elem == "go" {
elem = "go_bootstrap" elem = "go_bootstrap"
} }
link = []string{pathf("%s/link", tooldir), "-o", pathf("%s/%s%s", tooldir, elem, exe)} link = []string{pathf("%s/link", tooldir)}
if goos == "android" {
link = append(link, "-buildmode=pie")
}
link = append(link, "-o", pathf("%s/%s%s", tooldir, elem, exe))
targ = len(link) - 1 targ = len(link) - 1
} }
ttarg := mtime(link[targ]) ttarg := mtime(link[targ])
...@@ -862,6 +866,9 @@ func runInstall(dir string, ch chan struct{}) { ...@@ -862,6 +866,9 @@ func runInstall(dir string, ch chan struct{}) {
// compiler to generate ABI wrappers for everything. // compiler to generate ABI wrappers for everything.
compile = append(compile, "-allabis") compile = append(compile, "-allabis")
} }
if goos == "android" {
compile = append(compile, "-shared")
}
compile = append(compile, gofiles...) compile = append(compile, gofiles...)
var wg sync.WaitGroup var wg sync.WaitGroup
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment