diff options
author | Than McIntosh <thanm@google.com> | 2020-04-28 15:25:54 -0400 |
---|---|---|
committer | Than McIntosh <thanm@google.com> | 2020-04-29 15:05:14 +0000 |
commit | 9a3bf7d542b73307f455d714d97cc28f78a9b0eb (patch) | |
tree | a5ec8657beda3d892150f7e05f1f7315ca404cad /src/cmd/link/internal/ld/lib.go | |
parent | 8493b645270bde36c5c76b5baf903fe0fb44f0d4 (diff) | |
download | go-9a3bf7d542b73307f455d714d97cc28f78a9b0eb.tar.gz go-9a3bf7d542b73307f455d714d97cc28f78a9b0eb.zip |
[dev.link] cmd/link: remove Sub field from sym.Symbol
Remove 'Sub' field from sym.Symbol, replacing uses (those downstream of
loadlibfull) with loader method calls.
NB: removing the Outer field will have to wait for now; it is accessed
in archreloc methods that don't have access to link ctxt or loader
currently.
Change-Id: I2abe5906fc169c64b2ab7d5ad213619bea5a17c7
Reviewed-on: https://go-review.googlesource.com/c/go/+/230617
Run-TryBot: Than McIntosh <thanm@google.com>
Reviewed-by: Cherry Zhang <cherryyz@google.com>
Reviewed-by: Jeremy Faller <jeremy@golang.org>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Diffstat (limited to 'src/cmd/link/internal/ld/lib.go')
-rw-r--r-- | src/cmd/link/internal/ld/lib.go | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/src/cmd/link/internal/ld/lib.go b/src/cmd/link/internal/ld/lib.go index 51d81eb28d..baccb8baae 100644 --- a/src/cmd/link/internal/ld/lib.go +++ b/src/cmd/link/internal/ld/lib.go @@ -2929,12 +2929,19 @@ func ElfSymForReloc(ctxt *Link, s *sym.Symbol) int32 { } } +func symSub(ctxt *Link, s *sym.Symbol) *sym.Symbol { + if lsub := ctxt.loader.SubSym(loader.Sym(s.SymIdx)); lsub != 0 { + return ctxt.loader.Syms[lsub] + } + return nil +} + func (ctxt *Link) dumpsyms() { for _, s := range ctxt.loader.Syms { if s == nil { continue } - fmt.Printf("%s %s reachable=%v onlist=%v outer=%v sub=%v\n", s, s.Type, s.Attr.Reachable(), s.Attr.OnList(), s.Outer, s.Sub) + fmt.Printf("%s %s reachable=%v onlist=%v outer=%v sub=%v\n", s, s.Type, s.Attr.Reachable(), s.Attr.OnList(), s.Outer, symSub(ctxt, s)) for i := range s.R { fmt.Println("\t", s.R[i].Type, s.R[i].Sym) } |