43 lines
1.5 KiB
Diff
43 lines
1.5 KiB
Diff
From 4ec78a579cc3c83a7d0afc7483fb3e69e2fd87a7 Mon Sep 17 00:00:00 2001
|
|
From: "Paul E. Murphy" <murp@ibm.com>
|
|
Date: Tue, 27 Apr 2021 15:05:51 -0500
|
|
Subject: [PATCH] cmd/link: disable plugin support if cgo is disabled
|
|
|
|
Functional plugin support requires cgo to be enabled. Disable
|
|
it if the environment has disabled cgo.
|
|
|
|
This prevents unexpected linker failures when linking large
|
|
binaries with cgo disabled which use the plugin package.
|
|
|
|
Fixes #45564
|
|
|
|
Change-Id: Ib71f0e089f7373b7b3e3cd53da3612291e7bc473
|
|
Reviewed-on: https://go-review.googlesource.com/c/go/+/314449
|
|
Run-TryBot: Paul Murphy <murp@ibm.com>
|
|
Reviewed-by: Cherry Zhang <cherryyz@google.com>
|
|
TryBot-Result: Go Bot <gobot@golang.org>
|
|
Trust: Lynn Boger <laboger@linux.vnet.ibm.com>
|
|
---
|
|
src/cmd/link/internal/ld/lib.go | 5 ++++-
|
|
1 file changed, 4 insertions(+), 1 deletion(-)
|
|
|
|
diff --git a/src/cmd/link/internal/ld/lib.go b/src/cmd/link/internal/ld/lib.go
|
|
index 0e77424884..f7a32aebae 100644
|
|
--- a/src/cmd/link/internal/ld/lib.go
|
|
+++ b/src/cmd/link/internal/ld/lib.go
|
|
@@ -533,7 +533,10 @@ func (ctxt *Link) loadlib() {
|
|
// up symbol by name may not get expected result.
|
|
|
|
iscgo = ctxt.LibraryByPkg["runtime/cgo"] != nil
|
|
- ctxt.canUsePlugins = ctxt.LibraryByPkg["plugin"] != nil
|
|
+
|
|
+ // 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
|
|
|
|
// We now have enough information to determine the link mode.
|
|
determineLinkMode(ctxt)
|
|
--
|
|
2.30.2
|
|
|