aboutsummaryrefslogtreecommitdiff
path: root/src/cmd/link
diff options
context:
space:
mode:
authorCherry Mui <cherryyz@google.com>2023-09-11 15:53:49 -0400
committerCherry Mui <cherryyz@google.com>2023-09-12 15:31:24 +0000
commite924ea03cc7651cffdec9636a0d79d54eb6e7e0d (patch)
tree6e14e19b13c22427f27afd60fcd3f9d83e40e9f2 /src/cmd/link
parent905b58b5377e8f542590a46a3c90146ab45a6c96 (diff)
downloadgo-e924ea03cc7651cffdec9636a0d79d54eb6e7e0d.tar.xz
cmd/link: disable DWARF by default in c-shared mode on darwin
Currently, linking a Go c-shared object with C code using Apple's new linker, it fails with % cc a.c go.so ld: segment '__DWARF' filesize exceeds vmsize in 'go.so' Apple's new linker has more checks for unmapped segments. It is very hard to make it accept a Mach-O shared object with an additional DWARF segment. We may want to stop combinding DWARF into the shared object (see also #62577). For now, disable DWARF by default in c-shared mode on darwin. (One can still enable it with -ldflags=-w=0, which will contain DWARF, but it will need the old C linker to link against with.) For #61229. Change-Id: I4cc77da54fac10e2c2cbcffa92779cba82706d75 Reviewed-on: https://go-review.googlesource.com/c/go/+/527415 LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com> Reviewed-by: Than McIntosh <thanm@google.com> Run-TryBot: Cherry Mui <cherryyz@google.com> TryBot-Result: Gopher Robot <gobot@golang.org>
Diffstat (limited to 'src/cmd/link')
-rw-r--r--src/cmd/link/internal/ld/main.go3
1 files changed, 3 insertions, 0 deletions
diff --git a/src/cmd/link/internal/ld/main.go b/src/cmd/link/internal/ld/main.go
index ccc7d29bf2..aa6c00ce88 100644
--- a/src/cmd/link/internal/ld/main.go
+++ b/src/cmd/link/internal/ld/main.go
@@ -245,6 +245,9 @@ func Main(arch *sys.Arch, theArch Arch) {
*FlagW = true
case ternaryFlagUnset:
*FlagW = *FlagS // -s implies -w if not explicitly set
+ if ctxt.IsDarwin() && ctxt.BuildMode == BuildModeCShared {
+ *FlagW = true // default to -w in c-shared mode on darwin, see #61229
+ }
}
if !buildcfg.Experiment.RegabiWrappers {