mirror of https://github.com/golang/go.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 <thanm@google.com> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Jeremy Faller <jeremy@golang.org> Reviewed-by: Cherry Zhang <cherryyz@google.com>
This commit is contained in:
parent
49099d21f5
commit
d44c9a046b
|
|
@ -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)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue