[yaml2obj/obj2yaml] - Improve dumping/creating of ELF versioning sections.
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.
Differential revision: https://reviews.llvm.org/D94956
GitOrigin-RevId: 51f4958057d6c246e85c3fbc65353bc0d7c1049b
diff --git a/test/ELF/invalid/verneed-shared.test b/test/ELF/invalid/verneed-shared.test
index 916b8c1..2e2ff49 100644
--- a/test/ELF/invalid/verneed-shared.test
+++ b/test/ELF/invalid/verneed-shared.test
@@ -14,10 +14,9 @@
Type: ET_DYN
Machine: EM_X86_64
Sections:
- - Name: .gnu.version_r
- Type: SHT_GNU_verneed
- Flags: [ SHF_ALLOC ]
- Info: 1
+ - Name: .gnu.version_r
+ Type: SHT_GNU_verneed
+ Flags: [ SHF_ALLOC ]
ShOffset: 0xFFFFFFFF
## A Verneed entry is misaligned (not a multiple of 4). This may happen
@@ -37,8 +36,6 @@
- Name: .gnu.version_r
Type: SHT_GNU_verneed
Flags: [ SHF_ALLOC ]
- Info: 1
- Link: .dynstr
Dependencies:
- Version: 1
File: foo
@@ -65,7 +62,6 @@
Type: SHT_GNU_verneed
Flags: [ SHF_ALLOC ]
Info: 1
- Link: .dynstr
Content: "[[VERNEED]]"
DynamicSymbols:
- Name: foo