diff options
| author | Cherry Zhang <cherryyz@google.com> | 2020-11-08 11:50:10 -0500 |
|---|---|---|
| committer | Cherry Zhang <cherryyz@google.com> | 2021-03-05 23:58:34 +0000 |
| commit | 414fa8c35e7c2f65e2c767d6db2f25791e53b5c1 (patch) | |
| tree | d197d5e6748f41d60f0e6b0b09452c69b839ac1d /src/cmd/link/internal/loader/loader.go | |
| parent | 009bfeae866f45549865e554420a05c10e9578ca (diff) | |
| download | go-414fa8c35e7c2f65e2c767d6db2f25791e53b5c1.tar.xz | |
cmd/internal/objabi: use a separate bit to mark weak relocation
Instead of using two relocation types R_XXX and R_WEAKXXX, use a
separate bit, R_WEAK, to mark weak relocations. This makes it
easier to add more weak relocation types.
Change-Id: Iec4195c2aefa65f59e464c83018246e17cd08173
Reviewed-on: https://go-review.googlesource.com/c/go/+/268478
Trust: Cherry Zhang <cherryyz@google.com>
Run-TryBot: Cherry Zhang <cherryyz@google.com>
TryBot-Result: Go Bot <gobot@golang.org>
Reviewed-by: Jeremy Faller <jeremy@golang.org>
Reviewed-by: Than McIntosh <thanm@google.com>
Diffstat (limited to 'src/cmd/link/internal/loader/loader.go')
| -rw-r--r-- | src/cmd/link/internal/loader/loader.go | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/src/cmd/link/internal/loader/loader.go b/src/cmd/link/internal/loader/loader.go index 6d2e7dcabc..5df4348a36 100644 --- a/src/cmd/link/internal/loader/loader.go +++ b/src/cmd/link/internal/loader/loader.go @@ -53,7 +53,8 @@ type Reloc struct { l *Loader } -func (rel Reloc) Type() objabi.RelocType { return objabi.RelocType(rel.Reloc.Type()) } +func (rel Reloc) Type() objabi.RelocType { return objabi.RelocType(rel.Reloc.Type()) &^ objabi.R_WEAK } +func (rel Reloc) Weak() bool { return objabi.RelocType(rel.Reloc.Type())&objabi.R_WEAK != 0 } func (rel Reloc) SetType(t objabi.RelocType) { rel.Reloc.SetType(uint16(t)) } func (rel Reloc) Sym() Sym { return rel.l.resolve(rel.r, rel.Reloc.Sym()) } func (rel Reloc) SetSym(s Sym) { rel.Reloc.SetSym(goobj.SymRef{PkgIdx: 0, SymIdx: uint32(s)}) } |
