From: Cherry Zhang Date: Wed, 26 Feb 2020 15:08:30 +0000 (-0500) Subject: cmd/link: reenable internal linking PIE on linux/amd64 and linux/arm64 X-Git-Tag: go1.15beta1~1033 X-Git-Url: http://www.git.cypherpunks.su/?a=commitdiff_plain;h=c70f069902c8dc4c76003eb494e549bafdd3313e;p=gostls13.git cmd/link: reenable internal linking PIE on linux/amd64 and linux/arm64 It was enabled in CL 207877, but then accidentally disabled in CL 207299 due to a bad rebase. Reenable. Change-Id: I147bf724a4263d4aae54576a36cc7e1cad5e8a2c Reviewed-on: https://go-review.googlesource.com/c/go/+/221098 Run-TryBot: Cherry Zhang TryBot-Result: Gobot Gobot Reviewed-by: Elias Naur Reviewed-by: Ian Lance Taylor --- diff --git a/src/cmd/link/internal/ld/config.go b/src/cmd/link/internal/ld/config.go index 1420a86fd1..0eba4dc162 100644 --- a/src/cmd/link/internal/ld/config.go +++ b/src/cmd/link/internal/ld/config.go @@ -247,16 +247,10 @@ func determineLinkMode(ctxt *Link) { ctxt.LinkMode = LinkExternal via = "via GO_EXTLINK_ENABLED " default: - ctxt.LinkMode = LinkInternal - switch { - case extNeeded, iscgo && externalobj: + if extNeeded || (iscgo && externalobj) { ctxt.LinkMode = LinkExternal - case ctxt.BuildMode == BuildModePIE: - // Android always use BuildModePIE, and needs internal linking for - // bootstrapping. - if objabi.GOOS != "android" || objabi.GOARCH != "arm64" { - ctxt.LinkMode = LinkExternal - } + } else { + ctxt.LinkMode = LinkInternal } } }