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 <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>
This commit is contained in:
Ian Lance Taylor 2021-04-12 17:30:36 -07:00
parent 69262d4871
commit 3bf645a633

View 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"
}