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{}) {
if elem == "go" {
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
}
ttarg := mtime(link[targ])
......@@ -862,6 +866,9 @@ func runInstall(dir string, ch chan struct{}) {
// compiler to generate ABI wrappers for everything.
compile = append(compile, "-allabis")
}
if goos == "android" {
compile = append(compile, "-shared")
}
compile = append(compile, gofiles...)
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