summaryrefslogtreecommitdiffstats
path: root/llvm/tools/llvm-readobj/llvm-readobj.cpp
diff options
context:
space:
mode:
authorMatt Davis <Matthew.Davis@sony.com>2019-02-01 18:51:10 +0000
committerMatt Davis <Matthew.Davis@sony.com>2019-02-01 18:51:10 +0000
commit50ca8edb1a0d94e057a28ae792e3b756bd08d809 (patch)
tree999b6b97b1b82efc130184b881f94f2b4689eb8b /llvm/tools/llvm-readobj/llvm-readobj.cpp
parent25b4c4ceb6861c4564bcb5280fa81805cb9cca80 (diff)
downloadbcm5719-llvm-50ca8edb1a0d94e057a28ae792e3b756bd08d809.tar.gz
bcm5719-llvm-50ca8edb1a0d94e057a28ae792e3b756bd08d809.zip
[llvm-readobj] Add a flag to dump just the section-to-segment mapping.
Summary: The following patch introduces a new function `printSectionMapping` which is responsible for dumping just the section-to-segment mapping. This patch also introduces a n option `-section-mapping` that outputs that mapping without the program headers. Previously, this functionality was controlled by `printProgramHeaders`, and the output from `-program-headers` has not been changed. I am happy to change the option name, I copied the name that was displayed when outputting the mapping table. Reviewers: khemant, jhenderson, grimar, rupprecht Reviewed By: jhenderson, grimar, rupprecht Subscribers: rupprecht, jhenderson, llvm-commits Differential Revision: https://reviews.llvm.org/D57365 llvm-svn: 352896
Diffstat (limited to 'llvm/tools/llvm-readobj/llvm-readobj.cpp')
-rw-r--r--llvm/tools/llvm-readobj/llvm-readobj.cpp9
1 files changed, 7 insertions, 2 deletions
diff --git a/llvm/tools/llvm-readobj/llvm-readobj.cpp b/llvm/tools/llvm-readobj/llvm-readobj.cpp
index 206b67bbc78..74f21e30d72 100644
--- a/llvm/tools/llvm-readobj/llvm-readobj.cpp
+++ b/llvm/tools/llvm-readobj/llvm-readobj.cpp
@@ -106,6 +106,11 @@ namespace opts {
cl::opt<bool> SectionData("section-data",
cl::desc("Display section data for each section shown."));
+ // -section-mapping
+ cl::opt<cl::boolOrDefault>
+ SectionMapping("section-mapping",
+ cl::desc("Display the section to segment mapping."));
+
// -relocations, -relocs, -r
cl::opt<bool> Relocations("relocations",
cl::desc("Display the relocation entries in the file"));
@@ -474,8 +479,8 @@ static void dumpObject(const ObjectFile *Obj, ScopedPrinter &Writer) {
Dumper->printDynamicTable();
if (opts::NeededLibraries)
Dumper->printNeededLibraries();
- if (opts::ProgramHeaders)
- Dumper->printProgramHeaders();
+ if (opts::ProgramHeaders || opts::SectionMapping == cl::BOU_TRUE)
+ Dumper->printProgramHeaders(opts::ProgramHeaders, opts::SectionMapping);
if (!opts::StringDump.empty())
llvm::for_each(opts::StringDump, [&Dumper, Obj](StringRef SectionName) {
Dumper->printSectionAsString(Obj, SectionName);
OpenPOWER on IntegriCloud