From fa270ad98e77cd0625c97eb01ad01efe11a324e8 Mon Sep 17 00:00:00 2001 From: Elias Naur Date: Sat, 7 May 2016 07:24:39 +0200 Subject: [PATCH] cmd/go: add -shared to darwin/arm{,64} default build mode Buildmode c-archive now supports position independent code for darwin/arm (in addition to darwin/arm64). Make PIC (-shared) the default for both platforms in the default buildmode. Without this change, gomobile will go install the standard library into its separate package directory without PIC support. Also add -shared to darwin/arm64 in buildmode c-archive, for symmetry (darwin/arm64 always generates position independent code). Fixes #15519 Change-Id: If27d2cbea8f40982e14df25da2703cbba572b5c6 Reviewed-on: https://go-review.googlesource.com/22920 Reviewed-by: David Crawshaw Run-TryBot: David Crawshaw TryBot-Result: Gobot Gobot --- misc/cgo/testcarchive/carchive_test.go | 2 +- src/cmd/go/build.go | 5 ++++- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/misc/cgo/testcarchive/carchive_test.go b/misc/cgo/testcarchive/carchive_test.go index 0174e31015..ab14c007a9 100644 --- a/misc/cgo/testcarchive/carchive_test.go +++ b/misc/cgo/testcarchive/carchive_test.go @@ -84,7 +84,7 @@ func init() { cc = append(cc, []string{"-framework", "CoreFoundation", "-framework", "Foundation"}...) } libgodir = GOOS + "_" + GOARCH - if GOOS == "darwin" && GOARCH == "arm" { + if GOOS == "darwin" && (GOARCH == "arm" || GOARCH == "arm64") { libgodir = GOOS + "_" + GOARCH + "_shared" } cc = append(cc, "-I", filepath.Join("pkg", libgodir)) diff --git a/src/cmd/go/build.go b/src/cmd/go/build.go index 6bef09b66b..e0cb216b8c 100644 --- a/src/cmd/go/build.go +++ b/src/cmd/go/build.go @@ -335,7 +335,7 @@ func buildModeInit() { return p } switch platform { - case "darwin/arm": + case "darwin/arm", "darwin/arm64": codegenArg = "-shared" default: } @@ -361,6 +361,9 @@ func buildModeInit() { case "android/arm", "android/arm64", "android/amd64", "android/386": codegenArg = "-shared" ldBuildmode = "pie" + case "darwin/arm", "darwin/arm64": + codegenArg = "-shared" + fallthrough default: ldBuildmode = "exe" } -- 2.48.1