From: Than McIntosh Date: Thu, 26 Dec 2019 18:39:04 +0000 (-0500) Subject: [dev.link] cmd/link: add SymVersion loader method X-Git-Tag: go1.15beta1~679^2~164 X-Git-Url: http://www.git.cypherpunks.su/?a=commitdiff_plain;h=c6fea80b9582d7c4f86bf88b404ac6ebb33359fd;p=gostls13.git [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 Reviewed-by: Cherry Zhang --- 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) {