mirror of
https://github.com/golang/go.git
synced 2025-12-08 06:10:04 +00:00
[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
1 changed files with 7 additions and 0 deletions
|
|
@ -1688,6 +1688,9 @@ func (l *Loader) preloadSyms(r *oReader, kind int) {
|
||||||
if osym.TopFrame() {
|
if osym.TopFrame() {
|
||||||
l.SetAttrTopFrame(gi, true)
|
l.SetAttrTopFrame(gi, true)
|
||||||
}
|
}
|
||||||
|
if osym.Local() {
|
||||||
|
l.SetAttrLocal(gi, true)
|
||||||
|
}
|
||||||
if strings.HasPrefix(name, "go.itablink.") {
|
if strings.HasPrefix(name, "go.itablink.") {
|
||||||
l.itablink[gi] = struct{}{}
|
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)
|
name := strings.Replace(osym.Name, "\"\".", r.pkgprefix, -1)
|
||||||
v := abiToVer(osym.ABI, r.version)
|
v := abiToVer(osym.ABI, r.version)
|
||||||
r.syms[ndef+i] = l.LookupOrCreateSym(name, v)
|
r.syms[ndef+i] = l.LookupOrCreateSym(name, v)
|
||||||
|
if osym.Local() {
|
||||||
|
gi := r.syms[ndef+i]
|
||||||
|
l.SetAttrLocal(gi, true)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue