mirror of
https://github.com/golang/go
synced 2024-11-17 18:44:44 -07:00
cmd/link: set alignment of compressed section based on arch
The ELF compression header(Chdr) has Addralign field that is set to the alignment of the uncompressed section which makes section able to have a different alignment than the decompressed section. However `file` and other tools require both Chdr.Addralign and Addralign to be equal. Ref https://sourceware.org/bugzilla/show_bug.cgi?id=23919 Related #42136 Fixes #51769 Change-Id: I3cf99dbd2359932576420a3c0d342c7e91b99227 Reviewed-on: https://go-review.googlesource.com/c/go/+/393916 Trust: mzh <mzh@golangcn.org> Reviewed-by: Alessandro Arzilli <alessandro.arzilli@gmail.com> Reviewed-by: Cherry Mui <cherryyz@google.com> Run-TryBot: Cherry Mui <cherryyz@google.com> TryBot-Result: Gopher Robot <gobot@golang.org> Reviewed-by: Fangrui Song <maskray@google.com>
This commit is contained in:
parent
b810a74da3
commit
b9d6cea501
@ -2234,7 +2234,7 @@ func dwarfcompress(ctxt *Link) {
|
|||||||
compressedSegName = ".zdebug_" + ldr.SymSect(s).Name[len(".debug_"):]
|
compressedSegName = ".zdebug_" + ldr.SymSect(s).Name[len(".debug_"):]
|
||||||
}
|
}
|
||||||
sect := addsection(ctxt.loader, ctxt.Arch, &Segdwarf, compressedSegName, 04)
|
sect := addsection(ctxt.loader, ctxt.Arch, &Segdwarf, compressedSegName, 04)
|
||||||
sect.Align = 1
|
sect.Align = int32(ctxt.Arch.Alignment)
|
||||||
sect.Length = uint64(len(z.compressed))
|
sect.Length = uint64(len(z.compressed))
|
||||||
sect.Compressed = true
|
sect.Compressed = true
|
||||||
newSym := ldr.MakeSymbolBuilder(compressedSegName)
|
newSym := ldr.MakeSymbolBuilder(compressedSegName)
|
||||||
|
Loading…
Reference in New Issue
Block a user