From bda885511d804a8a588df97080c2ea8207d637e3 Mon Sep 17 00:00:00 2001 From: Hyang-Ah Hana Kim Date: Fri, 6 Nov 2015 17:28:58 -0500 Subject: [PATCH] cmd: allow buildmode=c-shared for android/386 Update golang/go#9327. Change-Id: Iab7dad31cf6b9f9347c3f34faebb67ecb38b17fc Reviewed-on: https://go-review.googlesource.com/16701 Run-TryBot: Hyang-Ah Hana Kim TryBot-Result: Gobot Gobot Reviewed-by: David Crawshaw --- src/cmd/dist/test.go | 4 +++- src/cmd/go/build.go | 2 +- src/cmd/link/internal/ld/lib.go | 9 ++++++++- 3 files changed, 12 insertions(+), 3 deletions(-) diff --git a/src/cmd/dist/test.go b/src/cmd/dist/test.go index e0bd3cdcc2..2e15247d6e 100644 --- a/src/cmd/dist/test.go +++ b/src/cmd/dist/test.go @@ -616,7 +616,9 @@ func (t *tester) supportedBuildmode(mode string) bool { return false case "c-shared": switch pair { - case "linux-386", "linux-amd64", "darwin-amd64", "android-arm", "linux-arm", "linux-arm64": + case "linux-386", "linux-amd64", "linux-arm", "linux-arm64", + "darwin-amd64", + "android-arm", "android-386": return true } return false diff --git a/src/cmd/go/build.go b/src/cmd/go/build.go index 11ad561c46..57ca28dd08 100644 --- a/src/cmd/go/build.go +++ b/src/cmd/go/build.go @@ -351,7 +351,7 @@ func buildModeInit() { } else { switch platform { case "linux/amd64", "linux/arm", "linux/arm64", "linux/386", - "android/amd64", "android/arm": + "android/amd64", "android/arm", "android/386": codegenArg = "-shared" case "darwin/amd64": default: diff --git a/src/cmd/link/internal/ld/lib.go b/src/cmd/link/internal/ld/lib.go index 40c784851a..acbb2ac883 100644 --- a/src/cmd/link/internal/ld/lib.go +++ b/src/cmd/link/internal/ld/lib.go @@ -325,7 +325,14 @@ func (mode *BuildMode) Set(s string) error { } *mode = BuildmodeCShared case "shared": - if goos != "linux" || (goarch != "386" && goarch != "amd64" && goarch != "arm" && goarch != "arm64" && goarch != "ppc64le") { + switch goos { + case "linux": + switch goarch { + case "386", "amd64", "arm", "arm64", "ppc64le": + default: + return badmode() + } + default: return badmode() } *mode = BuildmodeShared -- 2.50.0