llvm-project/llvm/lib/ObjectYAML
Georgii Rymar d5e48f1347 [yaml2obj][obj2yaml] - Improve how we set/dump the sh_entsize field.
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.

Differential revision: https://reviews.llvm.org/D95364
2021-01-26 13:33:02 +03:00
..
ArchiveEmitter.cpp [yaml2obj][obj2yaml] - Teach tools to work with regular archives. 2020-10-28 15:27:11 +03:00
ArchiveYAML.cpp [yaml2obj][obj2yaml] - Teach tools to work with regular archives. 2020-10-28 15:27:11 +03:00
CMakeLists.txt llvmbuildectomy - replace llvm-build by plain cmake 2020-11-13 10:35:24 +01:00
COFFEmitter.cpp [llvm] Don't include StringSwitch.h where unnecessary (NFC) 2021-01-21 19:59:48 -08:00
COFFYAML.cpp
CodeViewYAMLDebugSections.cpp Revert "Remove redundant "std::move"s in return statements" 2020-02-10 07:07:40 -08:00
CodeViewYAMLSymbols.cpp [COFF][ARM] Fix CodeView for Windows on 32bit ARM targets. 2020-10-19 22:16:16 -07:00
CodeViewYAMLTypeHashing.cpp
CodeViewYAMLTypes.cpp Revert "Remove redundant "std::move"s in return statements" 2020-02-10 07:07:40 -08:00
DWARFEmitter.cpp [llvm] Populate std::vector at construction time (NFC) 2021-01-18 10:16:33 -08:00
DWARFYAML.cpp Reland "[yaml2obj][ELF] - Simplify the code that performs sections validation." 2020-10-20 16:25:33 +03:00
ELFEmitter.cpp [yaml2obj][obj2yaml] - Improve how we set/dump the sh_entsize field. 2021-01-26 13:33:02 +03:00
ELFYAML.cpp [ObjectYAML] - An attempt to fix BB after commit of D95140. 2021-01-25 13:26:06 +03:00
MachOEmitter.cpp [llvm] Populate std::vector at construction time (NFC) 2021-01-18 10:16:33 -08:00
MachOYAML.cpp Reland "[yaml2obj][ELF] - Simplify the code that performs sections validation." 2020-10-20 16:25:33 +03:00
MinidumpEmitter.cpp
MinidumpYAML.cpp Reland "[yaml2obj][ELF] - Simplify the code that performs sections validation." 2020-10-20 16:25:33 +03:00
ObjectYAML.cpp [yaml2obj][obj2yaml] - Teach tools to work with regular archives. 2020-10-28 15:27:11 +03:00
WasmEmitter.cpp [WebAssembly] Change prefix on data segment flags to WASM_DATA_SEGMENT 2021-01-19 09:40:42 +01:00
WasmYAML.cpp [WebAssembly] Change prefix on data segment flags to WASM_DATA_SEGMENT 2021-01-19 09:40:42 +01:00
XCOFFYAML.cpp
YAML.cpp [FixBB] - Fix one more std::min -> std::min<uint64_t> to make BB happy. 2019-11-11 12:11:54 +03:00
yaml2obj.cpp [yaml2obj][obj2yaml] - Teach tools to work with regular archives. 2020-10-28 15:27:11 +03:00