From: Ian Lance Taylor Date: Tue, 13 Apr 2021 00:30:36 +0000 (-0700) Subject: cmd/link: force external linking for DragonFly cgo programs X-Git-Tag: go1.17beta1~686 X-Git-Url: http://www.git.cypherpunks.su/?a=commitdiff_plain;h=3bf645a633;p=gostls13.git cmd/link: force external linking for DragonFly cgo programs Change-Id: Idce4eec2a4698a94aa7b40590dffb6bf9bd45342 Reviewed-on: https://go-review.googlesource.com/c/go/+/309571 Trust: Ian Lance Taylor Run-TryBot: Ian Lance Taylor TryBot-Result: Go Bot Reviewed-by: Tobias Klauser --- diff --git a/src/cmd/link/internal/ld/config.go b/src/cmd/link/internal/ld/config.go index 291b28e11c..9228962fb3 100644 --- a/src/cmd/link/internal/ld/config.go +++ b/src/cmd/link/internal/ld/config.go @@ -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" }