aboutsummaryrefslogtreecommitdiff
path: root/src/cmd/link/internal/loader
diff options
context:
space:
mode:
authorThan McIntosh <thanm@google.com>2020-03-19 12:55:43 -0400
committerThan McIntosh <thanm@google.com>2020-03-23 15:10:28 +0000
commitd44c9a046b3c9cf13c8fb561fede2cdbdcc8d75e (patch)
treed127a4359547941458cfeb43b51fbe0cf95c3e24 /src/cmd/link/internal/loader
parent49099d21f5f130b2c42eb4dfdf4ebeb8464c174c (diff)
downloadgo-d44c9a046b3c9cf13c8fb561fede2cdbdcc8d75e.tar.xz
[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>
Diffstat (limited to 'src/cmd/link/internal/loader')
-rw-r--r--src/cmd/link/internal/loader/loader.go7
1 files changed, 7 insertions, 0 deletions
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)
+ }
}
}