aboutsummaryrefslogtreecommitdiff
path: root/src/cmd/link/internal/loader/loader_test.go
diff options
context:
space:
mode:
authorCherry Zhang <cherryyz@google.com>2020-11-08 11:27:53 -0500
committerCherry Zhang <cherryyz@google.com>2021-03-05 23:34:43 +0000
commitf901ea701ddac5a4d600d49007e54caa32b4c9b5 (patch)
tree30fc1857082153506af456117a382a224302887c /src/cmd/link/internal/loader/loader_test.go
parent87d29939c8f93799ce889d98e0e5579d1eb2ffe5 (diff)
downloadgo-f901ea701ddac5a4d600d49007e54caa32b4c9b5.tar.xz
cmd/internal/goobj: store relocation type as uint16
Currently, relocation type is stored as uint8 in object files, as Go relocations do not exceed 255. In the linker, however, it is used as a 16-bit type, because external relocations can exceed 255. The linker has to store the extra byte in a side table. This complicates many things. Just store it as uint16 in object files. This simplifies things, with a small cost of increasing the object file sizes. before after hello.o 1672 1678 runtime.a 7927784 8056194 Change-Id: I313cf44ad0b8b3b76e35055ae55d911ff35e3158 Reviewed-on: https://go-review.googlesource.com/c/go/+/268477 Trust: Cherry Zhang <cherryyz@google.com> Run-TryBot: Cherry Zhang <cherryyz@google.com> TryBot-Result: Go Bot <gobot@golang.org> Reviewed-by: Than McIntosh <thanm@google.com>
Diffstat (limited to 'src/cmd/link/internal/loader/loader_test.go')
-rw-r--r--src/cmd/link/internal/loader/loader_test.go3
1 files changed, 2 insertions, 1 deletions
diff --git a/src/cmd/link/internal/loader/loader_test.go b/src/cmd/link/internal/loader/loader_test.go
index 1371c2a541..15ae830dc9 100644
--- a/src/cmd/link/internal/loader/loader_test.go
+++ b/src/cmd/link/internal/loader/loader_test.go
@@ -237,7 +237,8 @@ func sameRelocSlice(s1 *Relocs, s2 []Reloc) bool {
type addFunc func(l *Loader, s Sym, s2 Sym) Sym
func mkReloc(l *Loader, typ objabi.RelocType, off int32, siz uint8, add int64, sym Sym) Reloc {
- r := Reloc{&goobj.Reloc{}, l.extReader, l, typ}
+ r := Reloc{&goobj.Reloc{}, l.extReader, l}
+ r.SetType(typ)
r.SetOff(off)
r.SetSiz(siz)
r.SetAdd(add)