diff options
author | Than McIntosh <thanm@google.com> | 2020-04-28 10:51:40 -0400 |
---|---|---|
committer | Than McIntosh <thanm@google.com> | 2020-04-28 19:04:47 +0000 |
commit | 0722a49b3713fe41bb46e7f690a3f7f1314edbc7 (patch) | |
tree | a7392d4a85c983f501f0f3cbe16497b3d8ede0ba /src/cmd/link/internal/ld/lib.go | |
parent | 3f408fc7fdc8156f04414b529b9194f868485c8a (diff) | |
download | go-0722a49b3713fe41bb46e7f690a3f7f1314edbc7.tar.gz go-0722a49b3713fe41bb46e7f690a3f7f1314edbc7.zip |
[dev.link] cmd/link: remove elf sym fields from sym.Symbol
Remove the "ElfSym" and "LocalElfSym" fields from sym.Symbol,
replacing uses with loader method calls as needed.
Change-Id: I3828f13203ece2bdc03eeb09ab37a5c94e21a726
Reviewed-on: https://go-review.googlesource.com/c/go/+/230462
Reviewed-by: Cherry Zhang <cherryyz@google.com>
Diffstat (limited to 'src/cmd/link/internal/ld/lib.go')
-rw-r--r-- | src/cmd/link/internal/ld/lib.go | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/src/cmd/link/internal/ld/lib.go b/src/cmd/link/internal/ld/lib.go index 03d841dccb..e1f89858b6 100644 --- a/src/cmd/link/internal/ld/lib.go +++ b/src/cmd/link/internal/ld/lib.go @@ -2918,6 +2918,17 @@ func symPkg(ctxt *Link, s *sym.Symbol) string { return ctxt.loader.SymPkg(loader.Sym(s.SymIdx)) } +func ElfSymForReloc(ctxt *Link, s *sym.Symbol) int32 { + // If putelfsym created a local version of this symbol, use that in all + // relocations. + les := ctxt.loader.SymLocalElfSym(loader.Sym(s.SymIdx)) + if les != 0 { + return les + } else { + return ctxt.loader.SymElfSym(loader.Sym(s.SymIdx)) + } +} + func (ctxt *Link) dumpsyms() { for _, s := range ctxt.loader.Syms { if s == nil { |