From: Cherry Mui Date: Mon, 15 Dec 2025 20:36:23 +0000 (-0500) Subject: cmd/link: set canUsePlugins only on platforms that support plugin X-Git-Tag: go1.26rc1~1^2 X-Git-Url: http://www.git.cypherpunks.su/?a=commitdiff_plain;h=d14b6427cf8db9607e25f19b7cd1bab615b557b9;p=gostls13.git cmd/link: set canUsePlugins only on platforms that support plugin If a program imports the plugin package, but the plugin build mode is not supported on the platform, it still cannot use plugin. Don't treat it like so. Updates #76815. Change-Id: I0fd719427d7c3cc96a94ce1f92d6e4457da92a90 Reviewed-on: https://go-review.googlesource.com/c/go/+/730164 Reviewed-by: David Chase LUCI-TryBot-Result: Go LUCI --- diff --git a/src/cmd/link/internal/ld/lib.go b/src/cmd/link/internal/ld/lib.go index 22ee13dff8..bcad5add4a 100644 --- a/src/cmd/link/internal/ld/lib.go +++ b/src/cmd/link/internal/ld/lib.go @@ -38,6 +38,7 @@ import ( "encoding/binary" "fmt" "internal/buildcfg" + "internal/platform" "io" "log" "os" @@ -576,7 +577,8 @@ func (ctxt *Link) loadlib() { // Plugins a require cgo support to function. Similarly, plugins may require additional // internal linker support on some platforms which may not be implemented. - ctxt.canUsePlugins = ctxt.LibraryByPkg["plugin"] != nil && iscgo + ctxt.canUsePlugins = ctxt.LibraryByPkg["plugin"] != nil && iscgo && + platform.BuildModeSupported("gc", "plugin", buildcfg.GOOS, buildcfg.GOARCH) // We now have enough information to determine the link mode. determineLinkMode(ctxt)