From f7b66fffc55be043bb2348b5db9d6ba7842b1abe Mon Sep 17 00:00:00 2001 From: Michael Hudson-Doyle Date: Tue, 1 Sep 2015 14:07:14 +1200 Subject: [PATCH] cmd/dist, cmd/link: force external linking for shared libs on arm Also run testcshared. Fixes #12425 Change-Id: I5baea8d772d3462f945aab96260b4197dbb20c0a Reviewed-on: https://go-review.googlesource.com/14143 Reviewed-by: Ian Lance Taylor --- src/cmd/dist/test.go | 2 +- src/cmd/link/internal/arm/obj.go | 4 ++++ 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/src/cmd/dist/test.go b/src/cmd/dist/test.go index d0e634640c..510dc30f94 100644 --- a/src/cmd/dist/test.go +++ b/src/cmd/dist/test.go @@ -570,7 +570,7 @@ func (t *tester) supportedBuildmode(mode string) bool { case "c-shared": // TODO(hyangah): add linux-386. switch pair { - case "linux-amd64", "darwin-amd64", "android-arm": + case "linux-amd64", "darwin-amd64", "android-arm", "linux-arm": return true } return false diff --git a/src/cmd/link/internal/arm/obj.go b/src/cmd/link/internal/arm/obj.go index c4678209ce..10eb723bb9 100644 --- a/src/cmd/link/internal/arm/obj.go +++ b/src/cmd/link/internal/arm/obj.go @@ -86,6 +86,10 @@ func archinit() { ld.Linkmode = ld.LinkInternal } + if ld.Buildmode == ld.BuildmodeCArchive || ld.Buildmode == ld.BuildmodeCShared || ld.DynlinkingGo() { + ld.Linkmode = ld.LinkExternal + } + switch ld.HEADTYPE { default: if ld.Linkmode == ld.LinkAuto { -- 2.48.1