[PATCH] D94956: [yaml2obj/obj2yaml] - Improve dumping/creating of ELF versioning sections.

George Rimar via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Tue Jan 19 02:05:07 PST 2021


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

This makes the following improvements.

For `SHT_GNU_versym`:

- yaml2obj: set `sh_link` to index of `.dynsym` section automatically.

For `SHT_GNU_verdef`:

- yaml2obj: set `sh_link` to index of `.dynstr` section automatically.
- yaml2obj: set `sh_info` field automatically.
- obj2yaml: don't dump the `Info` field when its value matches the number of version definitions.

For `SHT_GNU_verneed`:

- yaml2obj: set `sh_link` to index of `.dynstr` section automatically.
- yaml2obj: set `sh_info` field automatically.
- obj2yaml: don't dump the `Info` field when its value matches the number of version dependencies.

Also, simplifies few test cases.


https://reviews.llvm.org/D94956

Files:
  lld/test/ELF/invalid/verneed-shared.test
  llvm/include/llvm/ObjectYAML/ELFYAML.h
  llvm/lib/ObjectYAML/ELFEmitter.cpp
  llvm/lib/ObjectYAML/ELFYAML.cpp
  llvm/test/Object/invalid.test
  llvm/test/tools/llvm-objdump/ELF/verdef.test
  llvm/test/tools/llvm-objdump/ELF/verneed.test
  llvm/test/tools/llvm-readobj/ELF/all.test
  llvm/test/tools/llvm-readobj/ELF/dyn-symbols.test
  llvm/test/tools/llvm-readobj/ELF/hidden-versym.test
  llvm/test/tools/llvm-readobj/ELF/merged.test
  llvm/test/tools/llvm-readobj/ELF/reloc-symbol-with-versioning.test
  llvm/test/tools/llvm-readobj/ELF/section-types.test
  llvm/test/tools/llvm-readobj/ELF/verdef-invalid.test
  llvm/test/tools/llvm-readobj/ELF/verneed-flags.yaml
  llvm/test/tools/llvm-readobj/ELF/verneed-invalid.test
  llvm/test/tools/llvm-readobj/ELF/versioninfo.test
  llvm/test/tools/llvm-readobj/ELF/versym-invalid.test
  llvm/test/tools/obj2yaml/ELF/verdef-section.yaml
  llvm/test/tools/obj2yaml/ELF/verneed-section.yaml
  llvm/test/tools/yaml2obj/ELF/override-shname.yaml
  llvm/test/tools/yaml2obj/ELF/override-shoffset.yaml
  llvm/test/tools/yaml2obj/ELF/override-shsize.yaml
  llvm/test/tools/yaml2obj/ELF/override-shtype.yaml
  llvm/test/tools/yaml2obj/ELF/verdef-section.yaml
  llvm/test/tools/yaml2obj/ELF/verneed-section.yaml
  llvm/test/tools/yaml2obj/ELF/versym-section.yaml
  llvm/tools/obj2yaml/elf2yaml.cpp

-------------- next part --------------
A non-text attachment was scrubbed...
Name: D94956.317493.patch
Type: text/x-patch
Size: 32468 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20210119/f140b66a/attachment.bin>


More information about the llvm-commits mailing list