src/cmd/link/internal/ld/pcln.go | 7 +++++-- diff --git a/src/cmd/link/internal/ld/pcln.go b/src/cmd/link/internal/ld/pcln.go index 8708924d92a2709b5b18f17e6e08859b106bf5d9..ed1b523b4edf4bec57b0fd45c58b994c7da97ef6 100644 --- a/src/cmd/link/internal/ld/pcln.go +++ b/src/cmd/link/internal/ld/pcln.go @@ -11,6 +11,7 @@ "cmd/link/internal/sym" "log" "os" "path/filepath" + "strings" ) // iteration over encoded pcdata tables. @@ -162,11 +163,13 @@ *d = out } -// onlycsymbol reports whether this is a cgo symbol provided by the -// runtime and only used from C code. +// onlycsymbol reports whether this is a symbol that is referenced by C code. func onlycsymbol(s *sym.Symbol) bool { switch s.Name { case "_cgo_topofstack", "_cgo_panic", "crosscall2": + return true + } + if strings.HasPrefix(s.Name, "_cgoexp_") { return true } return false