[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