From: Elias Naur Date: Sun, 7 Apr 2019 14:58:13 +0000 (+0200) Subject: cmd/dist: set buildmode=pie on Android X-Git-Tag: go1.13beta1~762 X-Git-Url: http://www.git.cypherpunks.su/?a=commitdiff_plain;h=81c7beb04eda3ecc97e723793e11c61732ff37e8;p=gostls13.git 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 TryBot-Result: Gobot Gobot Reviewed-by: Ian Lance Taylor Reviewed-by: Emmanuel Odeke --- diff --git a/src/cmd/dist/build.go b/src/cmd/dist/build.go index e5d4b2458a..fec3b2cedc 100644 --- a/src/cmd/dist/build.go +++ b/src/cmd/dist/build.go @@ -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