1
0
mirror of https://github.com/golang/go synced 2024-11-26 06:27:58 -07:00

cmd/link: count relocations better

Change-Id: Ie188abeb0194bf266d38c9bd0dda4b8f48934697
Reviewed-on: https://go-review.googlesource.com/c/go/+/312035
Trust: Russ Cox <rsc@golang.org>
Run-TryBot: Russ Cox <rsc@golang.org>
TryBot-Result: Go Bot <gobot@golang.org>
Reviewed-by: Cherry Zhang <cherryyz@google.com>
This commit is contained in:
Russ Cox 2021-04-14 19:53:43 -04:00
parent 41e5ae4883
commit 199575a119

View File

@ -524,7 +524,6 @@ func (f *peFile) emitRelocations(ctxt *Link) {
if sect.Vaddr >= sect.Seg.Vaddr+sect.Seg.Filelen {
return 0
}
nrelocs := 0
sect.Reloff = uint64(ctxt.Out.Offset())
for i, s := range syms {
if !ldr.AttrReachable(s) {
@ -562,11 +561,11 @@ func (f *peFile) emitRelocations(ctxt *Link) {
if !thearch.PEreloc1(ctxt.Arch, ctxt.Out, ldr, s, rr, int64(uint64(ldr.SymValue(s)+int64(r.Off()))-base)) {
ctxt.Errorf(s, "unsupported obj reloc %d/%d to %s", r.Type(), r.Siz(), ldr.SymName(r.Sym()))
}
nrelocs++
}
}
sect.Rellen = uint64(ctxt.Out.Offset()) - sect.Reloff
return nrelocs
const relocLen = 4 + 4 + 2
return int(sect.Rellen / relocLen)
}
sects := []struct {