]> Cypherpunks repositories - gostls13.git/commitdiff
cmd/link: don't use internal linking mode for cgo on PPC64
authorIan Lance Taylor <iant@golang.org>
Tue, 26 Sep 2017 13:55:49 +0000 (06:55 -0700)
committerIan Lance Taylor <iant@golang.org>
Tue, 26 Sep 2017 15:06:32 +0000 (15:06 +0000)
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>

src/cmd/link/internal/ld/config.go
src/cmd/nm/nm_cgo_test.go

index f91d9af5cdd105d98e5f8948079c261460722cd0..ce4f9bece6454bfe39a4c93d7f6c692848713e0d 100644 (file)
@@ -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"
        }
 
index 4e67560e2e2055953724c5d43cb85fde34514a6e..b32402069aa969a041e27376b20fef034e58e81a 100644 (file)
@@ -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
                }
        }