aboutsummaryrefslogtreecommitdiff
path: root/src/cmd/link/internal/ld/lib.go
diff options
context:
space:
mode:
authorThan McIntosh <thanm@google.com>2020-04-28 10:51:40 -0400
committerThan McIntosh <thanm@google.com>2020-04-28 19:04:47 +0000
commit0722a49b3713fe41bb46e7f690a3f7f1314edbc7 (patch)
treea7392d4a85c983f501f0f3cbe16497b3d8ede0ba /src/cmd/link/internal/ld/lib.go
parent3f408fc7fdc8156f04414b529b9194f868485c8a (diff)
downloadgo-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.go11
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 {