]> Cypherpunks repositories - gostls13.git/commitdiff
[dev.link] cmd/link: set "local" attribute on symbols during preload
authorThan McIntosh <thanm@google.com>
Thu, 19 Mar 2020 16:55:43 +0000 (12:55 -0400)
committerThan McIntosh <thanm@google.com>
Mon, 23 Mar 2020 15:10:28 +0000 (15:10 +0000)
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>
src/cmd/link/internal/loader/loader.go

index 13c4e5843c2e25cd2db215a79d0403f96c18dced..0eaf401f30ec33c93d0985a413f22db4509c96a6 100644 (file)
@@ -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)
+               }
        }
 }