mirror of
https://github.com/golang/go
synced 2024-11-24 08:00:12 -07:00
cmd/internal/obj: sort relocations
At least on some platforms (e.g. PE dynamic loader) relocations need to be sorted in address order. Currently we don't always emit relocations in address order: e.g. for array literal with out-of- order element initializers, or out-of-order DATA instructions in assembly code. Sort them. No test for now as I can't reproduce the failure for #51923. Fixes #51923. Change-Id: Ifec5d3476e027bb927bcefd6e45c40ebeccee4ba Reviewed-on: https://go-review.googlesource.com/c/go/+/396195 Trust: Cherry Mui <cherryyz@google.com> Run-TryBot: Cherry Mui <cherryyz@google.com> TryBot-Result: Gopher Robot <gobot@golang.org> Reviewed-by: Than McIntosh <thanm@google.com>
This commit is contained in:
parent
33987b408c
commit
1a9972ec87
@ -173,6 +173,7 @@ func WriteObjFile(ctxt *Link, b *bio.Writer) {
|
||||
h.Offsets[goobj.BlkReloc] = w.Offset()
|
||||
for _, list := range lists {
|
||||
for _, s := range list {
|
||||
sort.Sort(relocByOff(s.R)) // some platforms (e.g. PE) requires relocations in address order
|
||||
for i := range s.R {
|
||||
w.Reloc(&s.R[i])
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user