From: Ian Lance Taylor Date: Thu, 5 Feb 2026 04:58:51 +0000 (-0800) Subject: cmd/link: ignore GCC generated .wm4/.wm8 symbols with no type X-Git-Url: http://www.git.cypherpunks.su/?a=commitdiff_plain;h=5f51b092846ae43d03092d866449d9933a8bf42b;p=gostls13.git cmd/link: ignore GCC generated .wm4/.wm8 symbols with no type Fixes #77436 Change-Id: I37d852a89678c929156c4765e774c819eb515e6f Reviewed-on: https://go-review.googlesource.com/c/go/+/742220 Reviewed-by: Michael Knyszek LUCI-TryBot-Result: Go LUCI Reviewed-by: Cherry Mui Auto-Submit: Ian Lance Taylor --- diff --git a/src/cmd/go/testdata/script/cgo_g3.txt b/src/cmd/go/testdata/script/cgo_g3.txt new file mode 100644 index 0000000000..ada9a8c691 --- /dev/null +++ b/src/cmd/go/testdata/script/cgo_g3.txt @@ -0,0 +1,18 @@ +[!cgo] skip + +# Test that -g3 works with cgo. +env CGO_CFLAGS=-g3 +go build + +-- go.mod -- +module cgog3 + +go 1.25 +-- m.go -- +package main + +import "os/user" + +func main() { + user.Current() +} diff --git a/src/cmd/link/internal/loadelf/ldelf.go b/src/cmd/link/internal/loadelf/ldelf.go index 239d4c169d..c5c4645656 100644 --- a/src/cmd/link/internal/loadelf/ldelf.go +++ b/src/cmd/link/internal/loadelf/ldelf.go @@ -615,6 +615,14 @@ func Load(l *loader.Loader, arch *sys.Arch, localSymVersion int, f *bio.Reader, // Symbols generated by the relax feature of gcc and binutils on loong64. continue } + + if strings.HasPrefix(elfsym.name, "wm4.") || strings.HasPrefix(elfsym.name, "wm8.") { + // Symbols generated by GCC as + // group symbols to eliminate + // duplicate debug info for + // preprocessor symbols. + continue + } } if strings.HasPrefix(elfsym.name, ".Linfo_string") {