mirror of
https://github.com/golang/go.git
synced 2025-12-08 06:10:04 +00:00
[dev.link] cmd/link: keep loader symbol info in sym.CompilationUnit
In sym.Library and sym.CompilationUnit there are slices of *sym.Symbol pointer that hold text symbols contained in the unit lib. To support DWARF generation with new loader, add equivalent slices that hold loader.Sym values for functions in scope. This will be needed if at some point we push the sym.Symbol creation "wavefront" beyond dwarf gen. This patch also insures that live host object symbols are added to the context Textp2 slice, since they would not make it on otherwise. [NB: not sure if this is the best way to do this.] Change-Id: I4f440e12cebc525b1e37082ad39cf7338aeb6b99 Reviewed-on: https://go-review.googlesource.com/c/go/+/208231 Run-TryBot: Than McIntosh <thanm@google.com> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Jeremy Faller <jeremy@golang.org>
This commit is contained in:
parent
6b0b7aca8a
commit
186e783730
5 changed files with 31 additions and 2 deletions
|
|
@ -1775,6 +1775,7 @@ func loadObjFull(l *Loader, r *oReader) {
|
|||
s := l.Syms[dupsym]
|
||||
if s.Type == sym.STEXT {
|
||||
lib.DupTextSyms = append(lib.DupTextSyms, s)
|
||||
lib.DupTextSyms2 = append(lib.DupTextSyms2, sym.LoaderSym(dupsym))
|
||||
}
|
||||
}
|
||||
continue
|
||||
|
|
@ -1996,10 +1997,12 @@ func loadObjFull(l *Loader, r *oReader) {
|
|||
}
|
||||
s.Attr.Set(sym.AttrOnList, true)
|
||||
lib.Textp = append(lib.Textp, s)
|
||||
lib.Textp2 = append(lib.Textp2, sym.LoaderSym(isym))
|
||||
} else {
|
||||
// there may be a dup in another package
|
||||
// put into a temp list and add to text later
|
||||
lib.DupTextSyms = append(lib.DupTextSyms, s)
|
||||
lib.DupTextSyms2 = append(lib.DupTextSyms2, sym.LoaderSym(isym))
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue