[PATCH] D44280: [llvm-readobj] Extend the output of -elf-section-groups with the field Link
Alexander Shaposhnikov via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Thu Mar 8 16:38:15 PST 2018
alexshap created this revision.
alexshap added reviewers: jhenderson, compnerd, jakehehrlich.
This diff extends the output of -elf-section-groups (llvm style, gnu unchanged (since it's meant to be compatible with binutils readelf) with the field Link. This change will enabled us to use llvm-readobj -elf-section-groups for testing llvm-objcopy's support for groups (instead of -section-data -sections).
Test plan: make check-all
Repository:
rL LLVM
https://reviews.llvm.org/D44280
Files:
test/tools/llvm-readobj/broken-group.test
test/tools/llvm-readobj/elf-groups.test
tools/llvm-readobj/ELFDumper.cpp
Index: tools/llvm-readobj/ELFDumper.cpp
===================================================================
--- tools/llvm-readobj/ELFDumper.cpp
+++ tools/llvm-readobj/ELFDumper.cpp
@@ -2481,6 +2481,7 @@
StringRef Signature;
uint64_t ShName;
uint64_t Index;
+ uint32_t Link;
uint32_t Type;
std::vector<GroupMember> Members;
};
@@ -2507,7 +2508,7 @@
StringRef Name = unwrapOrError(Obj->getSectionName(&Sec));
StringRef Signature = StrTable.data() + Sym->st_name;
- Ret.push_back({Name, Signature, Sec.sh_name, I - 1, Data[0], {}});
+ Ret.push_back({Name, Signature, Sec.sh_name, I - 1, Sec.sh_link, Data[0], {}});
std::vector<GroupMember> &GM = Ret.back().Members;
for (uint32_t Ndx : Data.slice(1)) {
@@ -3784,6 +3785,7 @@
DictScope D(W, "Group");
W.printNumber("Name", G.Name, G.ShName);
W.printNumber("Index", G.Index);
+ W.printNumber("Link", G.Link);
W.printHex("Type", getGroupType(G.Type), G.Type);
W.startLine() << "Signature: " << G.Signature << "\n";
Index: test/tools/llvm-readobj/elf-groups.test
===================================================================
--- test/tools/llvm-readobj/elf-groups.test
+++ test/tools/llvm-readobj/elf-groups.test
@@ -21,6 +21,7 @@
CHECK-NEXT: Group {
CHECK-NEXT: Name: .group (92)
CHECK-NEXT: Index: 1
+CHECK-NEXT: Link: 23
CHECK-NEXT: Type: COMDAT (0x1)
CHECK-NEXT: Signature: _Z3fooIcEvT_
CHECK-NEXT: Section(s) in group [
@@ -31,6 +32,7 @@
CHECK-NEXT: Group {
CHECK-NEXT: Name: .group (92)
CHECK-NEXT: Index: 2
+CHECK-NEXT: Link: 23
CHECK-NEXT: Type: COMDAT (0x1)
CHECK-NEXT: Signature: _Z3fooIiEvT_
CHECK-NEXT: Section(s) in group [
Index: test/tools/llvm-readobj/broken-group.test
===================================================================
--- test/tools/llvm-readobj/broken-group.test
+++ test/tools/llvm-readobj/broken-group.test
@@ -20,6 +20,7 @@
# LLVM-STDOUT-NEXT: Group {
# LLVM-STDOUT-NEXT: Name: .group
# LLVM-STDOUT-NEXT: Index: 2
+# LLVM-STDOUT-NEXT: Link: 5
# LLVM-STDOUT-NEXT: Type: COMDAT
# LLVM-STDOUT-NEXT: Signature: bar
# LLVM-STDOUT-NEXT: Section(s) in group [
@@ -29,6 +30,7 @@
# LLVM-STDOUT-NEXT: Group {
# LLVM-STDOUT-NEXT: Name: .group1
# LLVM-STDOUT-NEXT: Index: 4
+# LLVM-STDOUT-NEXT: Link: 5
# LLVM-STDOUT-NEXT: Type: COMDAT
# LLVM-STDOUT-NEXT: Signature: zed
# LLVM-STDOUT-NEXT: Section(s) in group [
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D44280.137673.patch
Type: text/x-patch
Size: 2538 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20180309/0f03ff8d/attachment.bin>
More information about the llvm-commits
mailing list