aboutsummaryrefslogtreecommitdiff
path: root/src/cmd
diff options
context:
space:
mode:
authorIan Lance Taylor <iant@golang.org>2017-09-26 06:55:49 -0700
committerIan Lance Taylor <iant@golang.org>2017-09-26 15:06:32 +0000
commitc99cfd93a86dc76ff276b13211ef65ab2752bfc7 (patch)
tree4731012e344dc852e4108fc6542b9650ea52621c /src/cmd
parent3fda3765b8691de51d62ef6d68ce772f4eb0c601 (diff)
downloadgo-c99cfd93a86dc76ff276b13211ef65ab2752bfc7.tar.xz
cmd/link: don't use internal linking mode for cgo on PPC64
The internal linker doesn't know how to handle multiple TOC sections in internal linking mode. This used to work because before CL 64793 we invoked ld -r on multiple objects, and that merged the TOC sections for us. Updates #21961 Change-Id: I48260a7195be660016f2f358ebc8cb79652210ab Reviewed-on: https://go-review.googlesource.com/66270 Run-TryBot: Ian Lance Taylor <iant@golang.org> Reviewed-by: Lynn Boger <laboger@linux.vnet.ibm.com> TryBot-Result: Gobot Gobot <gobot@golang.org>
Diffstat (limited to 'src/cmd')
-rw-r--r--src/cmd/link/internal/ld/config.go3
-rw-r--r--src/cmd/nm/nm_cgo_test.go2
2 files changed, 3 insertions, 2 deletions
diff --git a/src/cmd/link/internal/ld/config.go b/src/cmd/link/internal/ld/config.go
index f91d9af5cd..ce4f9bece6 100644
--- a/src/cmd/link/internal/ld/config.go
+++ b/src/cmd/link/internal/ld/config.go
@@ -190,7 +190,8 @@ func mustLinkExternal(ctxt *Link) (res bool, reason string) {
// Internally linking cgo is incomplete on some architectures.
// https://golang.org/issue/10373
// https://golang.org/issue/14449
- if iscgo && SysArch.InFamily(sys.ARM64, sys.MIPS64, sys.MIPS) {
+ // https://golang.org/issue/21961
+ if iscgo && SysArch.InFamily(sys.ARM64, sys.MIPS64, sys.MIPS, sys.PPC64) {
return true, objabi.GOARCH + " does not support internal cgo"
}
diff --git a/src/cmd/nm/nm_cgo_test.go b/src/cmd/nm/nm_cgo_test.go
index 4e67560e2e..b32402069a 100644
--- a/src/cmd/nm/nm_cgo_test.go
+++ b/src/cmd/nm/nm_cgo_test.go
@@ -17,7 +17,7 @@ func canInternalLink() bool {
return false
case "linux":
switch runtime.GOARCH {
- case "arm64", "mips64", "mips64le", "mips", "mipsle":
+ case "arm64", "mips64", "mips64le", "mips", "mipsle", "ppc64", "ppc64le":
return false
}
}