summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGeorgii Rymar <grimar@accesssoftek.com>2019-11-26 17:47:34 +0300
committerGeorgii Rymar <grimar@accesssoftek.com>2019-11-27 12:29:55 +0300
commit3b35603a56b2dcc7fb0480d8d4c4aeacacecf1fb (patch)
tree8715fa2fde1e43321eb3ba55a438ddc71953fa52
parent92d5ea5d1674c38e03d130c6b04afa118e94ef4a (diff)
downloadbcm5719-llvm-3b35603a56b2dcc7fb0480d8d4c4aeacacecf1fb.tar.gz
bcm5719-llvm-3b35603a56b2dcc7fb0480d8d4c4aeacacecf1fb.zip
[llvm-readobj] - Always print "Predecessors" for version definition sections.
This is a follow-up discussed in D70495 thread. The current logic is unusual for llvm-readobj. It doesn't print predecessors list when it is empty. This is not good for machine parsers. D70495 had to add this condition during refactoring to reduce amount of changes, in tests, because the original code also had a similar logic. Now seems it is time to get rid of it. This patch does it. Differential revision: https://reviews.llvm.org/D70717
-rw-r--r--lld/test/ELF/verdef-defaultver.s3
-rw-r--r--lld/test/ELF/verdef-dependency.s4
-rw-r--r--lld/test/ELF/verdef.s4
-rw-r--r--llvm/test/tools/llvm-readobj/elf-versioninfo.test6
-rw-r--r--llvm/test/tools/yaml2obj/ELF/verdef-section.yaml2
-rw-r--r--llvm/tools/llvm-readobj/ELFDumper.cpp3
6 files changed, 19 insertions, 3 deletions
diff --git a/lld/test/ELF/verdef-defaultver.s b/lld/test/ELF/verdef-defaultver.s
index 3c10f2dcfe2..7d2a0d27fa1 100644
--- a/lld/test/ELF/verdef-defaultver.s
+++ b/lld/test/ELF/verdef-defaultver.s
@@ -84,6 +84,7 @@
# DSO-NEXT: Index: 1
# DSO-NEXT: Hash: 127830196
# DSO-NEXT: Name: shared
+# DSO-NEXT: Predecessors: []
# DSO-NEXT: }
# DSO-NEXT: Definition {
# DSO-NEXT: Version: 1
@@ -92,6 +93,7 @@
# DSO-NEXT: Index: 2
# DSO-NEXT: Hash: 1425
# DSO-NEXT: Name: V1
+# DSO-NEXT: Predecessors: []
# DSO-NEXT: }
# DSO-NEXT: Definition {
# DSO-NEXT: Version: 1
@@ -100,6 +102,7 @@
# DSO-NEXT: Index: 3
# DSO-NEXT: Hash: 1426
# DSO-NEXT: Name: V2
+# DSO-NEXT: Predecessors: []
# DSO-NEXT: }
# DSO-NEXT: ]
diff --git a/lld/test/ELF/verdef-dependency.s b/lld/test/ELF/verdef-dependency.s
index 479f332d493..d7164362025 100644
--- a/lld/test/ELF/verdef-dependency.s
+++ b/lld/test/ELF/verdef-dependency.s
@@ -15,6 +15,7 @@
# DSO-NEXT: Index: 1
# DSO-NEXT: Hash: 127830196
# DSO-NEXT: Name: shared
+# DSO-NEXT: Predecessors: []
# DSO-NEXT: }
# DSO-NEXT: Definition {
# DSO-NEXT: Version: 1
@@ -23,6 +24,7 @@
# DSO-NEXT: Index: 2
# DSO-NEXT: Hash: 98457184
# DSO-NEXT: Name: LIBSAMPLE_1.0
+# DSO-NEXT: Predecessors: []
# DSO-NEXT: }
# DSO-NEXT: Definition {
# DSO-NEXT: Version: 1
@@ -31,6 +33,7 @@
# DSO-NEXT: Index: 3
# DSO-NEXT: Hash: 98456416
# DSO-NEXT: Name: LIBSAMPLE_2.0
+# DSO-NEXT: Predecessors: []
# DSO-NEXT: }
# DSO-NEXT: Definition {
# DSO-NEXT: Version: 1
@@ -39,5 +42,6 @@
# DSO-NEXT: Index: 4
# DSO-NEXT: Hash: 98456672
# DSO-NEXT: Name: LIBSAMPLE_3.0
+# DSO-NEXT: Predecessors: []
# DSO-NEXT: }
# DSO-NEXT: ]
diff --git a/lld/test/ELF/verdef.s b/lld/test/ELF/verdef.s
index d2aa924782f..dd1f1d41f01 100644
--- a/lld/test/ELF/verdef.s
+++ b/lld/test/ELF/verdef.s
@@ -33,6 +33,7 @@
# DSO-NEXT: Index: 1
# DSO-NEXT: Hash: 127830196
# DSO-NEXT: Name: shared
+# DSO-NEXT: Predecessors: []
# DSO-NEXT: }
# DSO-NEXT: Definition {
# DSO-NEXT: Version: 1
@@ -41,6 +42,7 @@
# DSO-NEXT: Index: 2
# DSO-NEXT: Hash: 98457184
# DSO-NEXT: Name: LIBSAMPLE_1.0
+# DSO-NEXT: Predecessors: []
# DSO-NEXT: }
# DSO-NEXT: Definition {
# DSO-NEXT: Version: 1
@@ -49,6 +51,7 @@
# DSO-NEXT: Index: 3
# DSO-NEXT: Hash: 98456416
# DSO-NEXT: Name: LIBSAMPLE_2.0
+# DSO-NEXT: Predecessors: []
# DSO-NEXT: }
# DSO-NEXT: Definition {
# DSO-NEXT: Version: 1
@@ -57,6 +60,7 @@
# DSO-NEXT: Index: 4
# DSO-NEXT: Hash: 98456672
# DSO-NEXT: Name: LIBSAMPLE_3.0
+# DSO-NEXT: Predecessors: []
# DSO-NEXT: }
# DSO-NEXT: ]
# DSO-NEXT: VersionRequirements [
diff --git a/llvm/test/tools/llvm-readobj/elf-versioninfo.test b/llvm/test/tools/llvm-readobj/elf-versioninfo.test
index c732f7d2a2b..591dfe27a1a 100644
--- a/llvm/test/tools/llvm-readobj/elf-versioninfo.test
+++ b/llvm/test/tools/llvm-readobj/elf-versioninfo.test
@@ -148,6 +148,7 @@ DynamicSymbols:
# LLVM-NEXT: Index: 0
# LLVM-NEXT: Hash: 0
# LLVM-NEXT: Name: VERSION1
+# LLVM-NEXT: Predecessors: []
# LLVM-NEXT: }
# LLVM-NEXT: Definition {
# LLVM-NEXT: Version: 1
@@ -157,6 +158,7 @@ DynamicSymbols:
# LLVM-NEXT: Index: 0
# LLVM-NEXT: Hash: 0
# LLVM-NEXT: Name: VERSION1
+# LLVM-NEXT: Predecessors: []
# LLVM-NEXT: }
# LLVM-NEXT: Definition {
# LLVM-NEXT: Version: 1
@@ -166,6 +168,7 @@ DynamicSymbols:
# LLVM-NEXT: Index: 0
# LLVM-NEXT: Hash: 0
# LLVM-NEXT: Name: VERSION1
+# LLVM-NEXT: Predecessors: []
# LLVM-NEXT: }
# LLVM-NEXT: Definition {
# LLVM-NEXT: Version: 1
@@ -175,6 +178,7 @@ DynamicSymbols:
# LLVM-NEXT: Index: 0
# LLVM-NEXT: Hash: 0
# LLVM-NEXT: Name: VERSION1
+# LLVM-NEXT: Predecessors: []
# LLVM-NEXT: }
# LLVM-NEXT: Definition {
# LLVM-NEXT: Version: 1
@@ -186,6 +190,7 @@ DynamicSymbols:
# LLVM-NEXT: Index: 2
# LLVM-NEXT: Hash: 175630257
# LLVM-NEXT: Name: VERSION1
+# LLVM-NEXT: Predecessors: []
# LLVM-NEXT: }
# LLVM-NEXT: Definition {
# LLVM-NEXT: Version: 1
@@ -436,6 +441,7 @@ DynamicSymbols:
# PAST-STRTAB-END-LLVM-NEXT: Index: 0
# PAST-STRTAB-END-LLVM-NEXT: Hash: 0
# PAST-STRTAB-END-LLVM-NEXT: Name: <invalid vda_name: 5>
+# PAST-STRTAB-END-LLVM-NEXT: Predecessors: []
# PAST-STRTAB-END-LLVM-NEXT: }
# PAST-STRTAB-END-LLVM-NEXT: ]
diff --git a/llvm/test/tools/yaml2obj/ELF/verdef-section.yaml b/llvm/test/tools/yaml2obj/ELF/verdef-section.yaml
index 960acbdb740..23bbc8ee791 100644
--- a/llvm/test/tools/yaml2obj/ELF/verdef-section.yaml
+++ b/llvm/test/tools/yaml2obj/ELF/verdef-section.yaml
@@ -12,6 +12,7 @@
# CHECK-NEXT: Index: 1
# CHECK-NEXT: Hash: 170240160
# CHECK-NEXT: Name: dso.so.0
+# CHECK-NEXT: Predecessors: []
# CHECK-NEXT: }
# CHECK-NEXT: Definition {
# CHECK-NEXT: Version: 1
@@ -21,6 +22,7 @@
# CHECK-NEXT: Index: 2
# CHECK-NEXT: Hash: 108387921
# CHECK-NEXT: Name: VERSION_1
+# CHECK-NEXT: Predecessors: []
# CHECK-NEXT: }
# CHECK-NEXT: Definition {
# CHECK-NEXT: Version: 1
diff --git a/llvm/tools/llvm-readobj/ELFDumper.cpp b/llvm/tools/llvm-readobj/ELFDumper.cpp
index 5127939f018..b7bd35e7c95 100644
--- a/llvm/tools/llvm-readobj/ELFDumper.cpp
+++ b/llvm/tools/llvm-readobj/ELFDumper.cpp
@@ -5826,9 +5826,6 @@ void LLVMStyle<ELFT>::printVersionDefinitionSection(const ELFFile<ELFT> *Obj,
W.printNumber("Index", D.Ndx);
W.printNumber("Hash", D.Hash);
W.printString("Name", D.Name.c_str());
-
- if (D.AuxV.empty())
- continue;
W.printList(
"Predecessors", D.AuxV,
[](raw_ostream &OS, const VerdAux &Aux) { OS << Aux.Name.c_str(); });
OpenPOWER on IntegriCloud