]> Cypherpunks repositories - gostls13.git/commitdiff
cmd/link: force external linking for DragonFly cgo programs
authorIan Lance Taylor <iant@golang.org>
Tue, 13 Apr 2021 00:30:36 +0000 (17:30 -0700)
committerIan Lance Taylor <iant@golang.org>
Tue, 13 Apr 2021 21:05:14 +0000 (21:05 +0000)
Change-Id: Idce4eec2a4698a94aa7b40590dffb6bf9bd45342
Reviewed-on: https://go-review.googlesource.com/c/go/+/309571
Trust: Ian Lance Taylor <iant@golang.org>
Run-TryBot: Ian Lance Taylor <iant@golang.org>
TryBot-Result: Go Bot <gobot@golang.org>
Reviewed-by: Tobias Klauser <tobias.klauser@gmail.com>
src/cmd/link/internal/ld/config.go

index 291b28e11c21a64c5331782c8051e9b999d346c6..9228962fb33b881ee9a4a8d4ebc83555f9ca2012 100644 (file)
@@ -199,7 +199,10 @@ func mustLinkExternal(ctxt *Link) (res bool, reason string) {
        if iscgo && ctxt.Arch.InFamily(sys.MIPS64, sys.MIPS, sys.PPC64, sys.RISCV64) {
                return true, objabi.GOARCH + " does not support internal cgo"
        }
-       if iscgo && objabi.GOOS == "android" {
+       if iscgo && (objabi.GOOS == "android" || objabi.GOOS == "dragonfly") {
+               // It seems that on Dragonfly thread local storage is
+               // set up by the dynamic linker, so internal cgo linking
+               // doesn't work. Test case is "go test runtime/cgo".
                return true, objabi.GOOS + " does not support internal cgo"
        }