diff options
| author | Than McIntosh <thanm@google.com> | 2019-12-26 13:39:04 -0500 |
|---|---|---|
| committer | Than McIntosh <thanm@google.com> | 2019-12-27 15:05:16 +0000 |
| commit | c6fea80b9582d7c4f86bf88b404ac6ebb33359fd (patch) | |
| tree | e5b2a7be2e21a995dca7e4dce7e3d03d6f24bcbe /src/cmd/link/internal/loader | |
| parent | 9a5468edff1b0f8e3b6be02ed59b238679cf5c2f (diff) | |
| download | go-c6fea80b9582d7c4f86bf88b404ac6ebb33359fd.tar.xz | |
[dev.link] cmd/link: add SymVersion loader method
Add a loader method to retrieve the version from a loader.Sym
(useful mainly for debugging at the moment).
Change-Id: I82e0e316bb86eb41b9cf366e656a0f848cf3424e
Reviewed-on: https://go-review.googlesource.com/c/go/+/212617
Reviewed-by: Jeremy Faller <jeremy@golang.org>
Reviewed-by: Cherry Zhang <cherryyz@google.com>
Diffstat (limited to 'src/cmd/link/internal/loader')
| -rw-r--r-- | src/cmd/link/internal/loader/loader.go | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/src/cmd/link/internal/loader/loader.go b/src/cmd/link/internal/loader/loader.go index f774c0c8dd..029e10feda 100644 --- a/src/cmd/link/internal/loader/loader.go +++ b/src/cmd/link/internal/loader/loader.go @@ -607,6 +607,21 @@ func (l *Loader) SymName(i Sym) string { return strings.Replace(osym.Name, "\"\".", r.pkgprefix, -1) } +// Returns the version of the i-th symbol. +func (l *Loader) SymVersion(i Sym) int { + if l.IsExternal(i) { + if s := l.Syms[i]; s != nil { + return int(s.Version) + } + pp := l.getPayload(i) + return pp.ver + } + r, li := l.toLocal(i) + osym := goobj2.Sym{} + osym.Read(r.Reader, r.SymOff(li)) + return int(abiToVer(osym.ABI, r.version)) +} + // Returns the type of the i-th symbol. func (l *Loader) SymType(i Sym) sym.SymKind { if l.IsExternal(i) { |
