On 8/20/20 10:36 AM, Mark Wielaard wrote:
Hi
On Thu, 2020-08-20 at 08:51 -0700, Yonghong Song wrote:
Do you think we could skip these .debug_* sections somehow in elf
parsing in resolve_btfids? resolve_btfids does not need to read
these sections. This way, no need to change their alignment
either.
The issue is that elfutils libelf will not allow writing out the
section when it notices the sh_addralign field is setup wrongly.
Maybe resolve_btfids can temporarily change sh_addralign to 4/8
before elf manipulation (elf_write) to make libelf happy.
After all elf_write is done, change back to whatever the
original value (1). Does this work?
Unfortunately no, because there is no elf_write, elf_update is how you
write out the ELF image to disc.
Since the code is using ELF_F_LAYOUT this will not change the actual
layout of the ELF image if that is what you are worried about.
And the workaround to set sh_addralign correctly before calling
elf_update is precisely what the fix in elfutils libelf will do itself
in the next release. Also binutils ld has been fixed to setup
sh_addralign to 4/8 as appropriate now (in git).
Sounds good then.
Thanks for fixing the issue in upstream, both libelf and binutils!
Cheers,
Mark