From e602625c5e65da607b99f72082dd60ff70cafe04 Mon Sep 17 00:00:00 2001 From: Ian Lance Taylor Date: Thu, 2 May 2024 13:38:55 -0700 Subject: cmd/go: pass -Wl,-z,nodelete for c-shared mode with gccgo This is the gccgo version of CL 15605. For https://gcc.gnu.org/PR114699 For #11100 For #12582 For #12873 Change-Id: I30e23130737022d772971f0bd629b57269174886 Reviewed-on: https://go-review.googlesource.com/c/go/+/582975 Reviewed-by: Than McIntosh Commit-Queue: Ian Lance Taylor LUCI-TryBot-Result: Go LUCI Reviewed-by: Ian Lance Taylor Auto-Submit: Ian Lance Taylor --- src/cmd/go/internal/work/gccgo.go | 3 +++ 1 file changed, 3 insertions(+) (limited to 'src') diff --git a/src/cmd/go/internal/work/gccgo.go b/src/cmd/go/internal/work/gccgo.go index 91d744e658..71f37e8d47 100644 --- a/src/cmd/go/internal/work/gccgo.go +++ b/src/cmd/go/internal/work/gccgo.go @@ -484,6 +484,9 @@ func (tools gccgoToolchain) link(b *Builder, root *Action, out, importcfg string case "c-shared": ldflags = append(ldflags, "-shared", "-nostdlib") + if cfg.Goos != "windows" { + ldflags = append(ldflags, "-Wl,-z,nodelete") + } ldflags = append(ldflags, goLibBegin...) ldflags = append(ldflags, "-lgo", "-lgcc_s", "-lgcc", "-lc", "-lgcc") -- cgit v1.2.3-54-g00ecf