[PATCH] D95364: [yaml2obj][obj2yaml] - Improve how we set/dump the sh_entsize field.

George Rimar via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Mon Jan 25 07:28:40 PST 2021


grimar created this revision.
grimar added reviewers: jhenderson, MaskRay.
Herald added subscribers: hiraditya, emaste.
Herald added a reviewer: alexshap.
Herald added a reviewer: rupprecht.
grimar requested review of this revision.
Herald added a project: LLVM.

We already set the `sh_entsize` field in a single place
for all non-implicit sections.

This patch reorders the logic slightly and with it
we finally have the only one place where the `sh_entsize` is set.

obj2yaml will not dump the `EntSize` key for `SHT_DYNSYM/SHT_SYMTAB` sections anymore,
when the value of `sh_entsize` is equal to `sizeof(Elf_Sym)`

Note that this also seems revealed an issue in llvm-objcopy:
Previously yaml2obj set the `sh_entsize` for the `.symtab` section to 0x18,
now we it sets it for `SHT_SYMTAB` sections, i.e. by type.
But the `llvm-objcopy/ELF/only-keep-debug.test` has a `.symtab` section of type `SHT_STRTAB`,
and now yaml2obj sets the `sh_entsize` to 0 for it.
I had to update the corresponding check lines for `ES`, but the behavior of
`llvm-objcopy` should be fixed instead I think.
I've added a TODO and a comment.

Depends on D95354 <https://reviews.llvm.org/D95354>


https://reviews.llvm.org/D95364

Files:
  llvm/include/llvm/ObjectYAML/ELFYAML.h
  llvm/lib/ObjectYAML/ELFEmitter.cpp
  llvm/test/tools/llvm-objcopy/ELF/only-keep-debug.test
  llvm/test/tools/obj2yaml/ELF/entsize.yaml
  llvm/test/tools/obj2yaml/ELF/implicit-sections-order.yaml
  llvm/test/tools/obj2yaml/ELF/no-symtab.yaml

-------------- next part --------------
A non-text attachment was scrubbed...
Name: D95364.319007.patch
Type: text/x-patch
Size: 8175 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20210125/0a83b392/attachment.bin>


More information about the llvm-commits mailing list