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>
compressedSegName = ".zdebug_" + ldr.SymSect(s).Name[len(".debug_"):]
}
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.Compressed = true
newSym := ldr.MakeSymbolBuilder(compressedSegName)