mirror of
https://github.com/golang/go.git
synced 2025-12-08 06:10:04 +00:00
[dev.link] cmd/link: add defined package symbols first, before any non-package symbols
Currently, the loader adds defined package symbols and non-package symbols to the global index space object by object. This CL changes it to add all the defined package symbols first, then all the non-package symbols. The advantage of doing this is that when adding package symbols, by definition they cannot be dup to each other, so we don't need to do a name lookup when adding them. We still add them to the lookup table (for now), since they may still be referenced by name (e.g. through linkname). This CL is also a prerequisite if we want to move to not adding package symbols to the lookup table entirely (e.g. by using pre-generated in-file lookup table). Also update some comments to reflect the current state. Change-Id: Ib757e070b48a9ef6215e47dc3421fc5c055b746c Reviewed-on: https://go-review.googlesource.com/c/go/+/219078 Run-TryBot: Cherry Zhang <cherryyz@google.com> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Than McIntosh <thanm@google.com>
This commit is contained in:
parent
ab1253b59a
commit
b0275bfbf4
3 changed files with 80 additions and 52 deletions
|
|
@ -20,7 +20,7 @@ import (
|
|||
// data or relocations).
|
||||
func addDummyObjSym(t *testing.T, ldr *Loader, or *oReader, name string) Sym {
|
||||
idx := len(ldr.objSyms)
|
||||
s, ok := ldr.AddSym(name, 0, or, idx, false, sym.SRODATA)
|
||||
s, ok := ldr.AddSym(name, 0, or, idx, nonPkgDef, false, sym.SRODATA)
|
||||
if !ok {
|
||||
t.Errorf("AddrSym failed for '" + name + "'")
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue