]> Cypherpunks repositories - gostls13.git/commitdiff
[dev.link] cmd/link: fix up 'top frame' attribute in preload
authorThan McIntosh <thanm@google.com>
Wed, 19 Feb 2020 14:44:23 +0000 (09:44 -0500)
committerThan McIntosh <thanm@google.com>
Fri, 28 Feb 2020 14:58:15 +0000 (14:58 +0000)
Populate the 'top frame' attribute for function symbols during preload
(needed for DWARF debug frame generation).

Change-Id: If27836f51ebafa3c1c29b268a22d72d1b59b505a
Reviewed-on: https://go-review.googlesource.com/c/go/+/220983
Run-TryBot: Than McIntosh <thanm@google.com>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: Cherry Zhang <cherryyz@google.com>
src/cmd/link/internal/loader/loader.go

index d5b1b97be1727141556519aaba9dbda5d1db2b71..bf7e314977329df1bf046bc386e6c3abd357ecae 100644 (file)
@@ -1627,6 +1627,9 @@ func (l *Loader) preloadSyms(r *oReader, kind int) {
                if !added {
                        continue
                }
+               if osym.TopFrame() {
+                       l.SetAttrTopFrame(gi, true)
+               }
                if strings.HasPrefix(name, "go.itablink.") {
                        l.itablink[gi] = struct{}{}
                }
@@ -2021,6 +2024,7 @@ func (l *Loader) migrateAttributes(src Sym, dst *sym.Symbol) {
        dst.Attr.Set(sym.AttrOnList, l.AttrOnList(src))
        dst.Attr.Set(sym.AttrLocal, l.AttrLocal(src))
        dst.Attr.Set(sym.AttrNotInSymbolTable, l.AttrNotInSymbolTable(src))
+       dst.Attr.Set(sym.AttrNoSplit, l.IsNoSplit(src))
        dst.Attr.Set(sym.AttrVisibilityHidden, l.AttrVisibilityHidden(src))
        dst.Attr.Set(sym.AttrDuplicateOK, l.AttrDuplicateOK(src))
        dst.Attr.Set(sym.AttrShared, l.AttrShared(src))