From d14b6427cf8db9607e25f19b7cd1bab615b557b9 Mon Sep 17 00:00:00 2001 From: Cherry Mui Date: Mon, 15 Dec 2025 15:36:23 -0500 Subject: [PATCH] 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 --- src/cmd/link/internal/ld/lib.go | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) 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) -- 2.52.0