From: Than McIntosh Date: Thu, 19 Mar 2020 16:55:43 +0000 (-0400) Subject: [dev.link] cmd/link: set "local" attribute on symbols during preload X-Git-Tag: go1.15beta1~679^2~45 X-Git-Url: http://www.git.cypherpunks.su/?a=commitdiff_plain;h=d44c9a046b3c9cf13c8fb561fede2cdbdcc8d75e;p=gostls13.git [dev.link] cmd/link: set "local" attribute on symbols during preload Set the "local" attribute on object file loader symbols during preload, as opposed to the current strategy of only propagating the local attr when we convert to sym.Symbols. Change-Id: I18965e2fdaa9a0b9315d95466d17d9f41aa40a45 Reviewed-on: https://go-review.googlesource.com/c/go/+/224379 Run-TryBot: Than McIntosh TryBot-Result: Gobot Gobot Reviewed-by: Jeremy Faller Reviewed-by: Cherry Zhang --- diff --git a/src/cmd/link/internal/loader/loader.go b/src/cmd/link/internal/loader/loader.go index 13c4e5843c..0eaf401f30 100644 --- a/src/cmd/link/internal/loader/loader.go +++ b/src/cmd/link/internal/loader/loader.go @@ -1688,6 +1688,9 @@ func (l *Loader) preloadSyms(r *oReader, kind int) { if osym.TopFrame() { l.SetAttrTopFrame(gi, true) } + if osym.Local() { + l.SetAttrLocal(gi, true) + } if strings.HasPrefix(name, "go.itablink.") { l.itablink[gi] = struct{}{} } @@ -1724,6 +1727,10 @@ func loadObjRefs(l *Loader, r *oReader, syms *sym.Symbols) { name := strings.Replace(osym.Name, "\"\".", r.pkgprefix, -1) v := abiToVer(osym.ABI, r.version) r.syms[ndef+i] = l.LookupOrCreateSym(name, v) + if osym.Local() { + gi := r.syms[ndef+i] + l.SetAttrLocal(gi, true) + } } }