From a52cea446d93e736113ed05c96e14f2d180c4274 Mon Sep 17 00:00:00 2001 From: Than McIntosh Date: Fri, 13 Dec 2019 13:34:43 -0500 Subject: [PATCH] [dev.link] cmd/link: add hooks for sorting loader.Reloc by offset Add support for supporting loader.Reloc by offset, needed by host object loaders. Change-Id: I5ac0702ee74ad71531f443e6215558d8151e3a4c Reviewed-on: https://go-review.googlesource.com/c/go/+/211306 Run-TryBot: Than McIntosh TryBot-Result: Gobot Gobot Reviewed-by: Cherry Zhang Reviewed-by: Jeremy Faller --- src/cmd/link/internal/loader/loader.go | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/src/cmd/link/internal/loader/loader.go b/src/cmd/link/internal/loader/loader.go index 28d8c397e0..6ffc67327e 100644 --- a/src/cmd/link/internal/loader/loader.go +++ b/src/cmd/link/internal/loader/loader.go @@ -1339,6 +1339,14 @@ func (l *Loader) relocs(r *oReader, li int) Relocs { } } +// RelocByOff implements sort.Interface for sorting relocations by offset. + +type RelocByOff []Reloc + +func (x RelocByOff) Len() int { return len(x) } +func (x RelocByOff) Swap(i, j int) { x[i], x[j] = x[j], x[i] } +func (x RelocByOff) Less(i, j int) bool { return x[i].Off < x[j].Off } + // Preload a package: add autolibs, add symbols to the symbol table. // Does not read symbol data yet. func (l *Loader) Preload(arch *sys.Arch, syms *sym.Symbols, f *bio.Reader, lib *sym.Library, unit *sym.CompilationUnit, length int64, pn string, flags int) { -- 2.48.1