diff options
| author | Ian Lance Taylor <iant@golang.org> | 2017-09-26 06:55:49 -0700 |
|---|---|---|
| committer | Ian Lance Taylor <iant@golang.org> | 2017-09-26 15:06:32 +0000 |
| commit | c99cfd93a86dc76ff276b13211ef65ab2752bfc7 (patch) | |
| tree | 4731012e344dc852e4108fc6542b9650ea52621c /src/cmd | |
| parent | 3fda3765b8691de51d62ef6d68ce772f4eb0c601 (diff) | |
| download | go-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.go | 3 | ||||
| -rw-r--r-- | src/cmd/nm/nm_cgo_test.go | 2 |
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 } } |
