mirror of
https://github.com/golang/go
synced 2024-11-26 08:17:59 -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:
parent
41e5ae4883
commit
199575a119
@ -524,7 +524,6 @@ func (f *peFile) emitRelocations(ctxt *Link) {
|
|||||||
if sect.Vaddr >= sect.Seg.Vaddr+sect.Seg.Filelen {
|
if sect.Vaddr >= sect.Seg.Vaddr+sect.Seg.Filelen {
|
||||||
return 0
|
return 0
|
||||||
}
|
}
|
||||||
nrelocs := 0
|
|
||||||
sect.Reloff = uint64(ctxt.Out.Offset())
|
sect.Reloff = uint64(ctxt.Out.Offset())
|
||||||
for i, s := range syms {
|
for i, s := range syms {
|
||||||
if !ldr.AttrReachable(s) {
|
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)) {
|
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()))
|
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
|
sect.Rellen = uint64(ctxt.Out.Offset()) - sect.Reloff
|
||||||
return nrelocs
|
const relocLen = 4 + 4 + 2
|
||||||
|
return int(sect.Rellen / relocLen)
|
||||||
}
|
}
|
||||||
|
|
||||||
sects := []struct {
|
sects := []struct {
|
||||||
|
Loading…
Reference in New Issue
Block a user