aboutsummaryrefslogtreecommitdiff
path: root/llvm/tools/llvm-readobj/llvm-readobj.cpp
diff options
context:
space:
mode:
authorzhijian <zhijian@ca.ibm.com>2022-12-14 11:16:20 -0500
committerzhijian <zhijian@ca.ibm.com>2022-12-14 11:16:20 -0500
commita274d62fecfc3f49065f3fcdcb9577637778e0bc (patch)
tree1bf38489f7675ffcbc82c8f27831507de8c78134 /llvm/tools/llvm-readobj/llvm-readobj.cpp
parent07335f9460ffa3a2be7f06b33a9f013de379f6a9 (diff)
downloadllvm-a274d62fecfc3f49065f3fcdcb9577637778e0bc.zip
llvm-a274d62fecfc3f49065f3fcdcb9577637778e0bc.tar.gz
llvm-a274d62fecfc3f49065f3fcdcb9577637778e0bc.tar.bz2
[XCOFF] Decode the relocation entries of loader section of xcoff for llvm-readobj
Summary: support decoding the relocation entries of loader section of xcoff for llvm-readobj https://www.ibm.com/docs/en/aix/7.2?topic=formats-xcoff-object-file-format#XCOFF__vra3i31ejbau Reviewers: James Henderson, Esme Yi Differential Revision: https://reviews.llvm.org/D136787
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 b618b4f..15a6c68 100644
--- a/llvm/tools/llvm-readobj/llvm-readobj.cpp
+++ b/llvm/tools/llvm-readobj/llvm-readobj.cpp
@@ -164,6 +164,7 @@ static bool COFFTLSDirectory;
static bool XCOFFAuxiliaryHeader;
static bool XCOFFLoaderSectionHeader;
static bool XCOFFLoaderSectionSymbol;
+static bool XCOFFLoaderSectionRelocation;
static bool XCOFFExceptionSection;
OutputStyleTy Output = OutputStyleTy::LLVM;
@@ -307,6 +308,8 @@ static void parseOptions(const opt::InputArgList &Args) {
opts::XCOFFAuxiliaryHeader = Args.hasArg(OPT_auxiliary_header);
opts::XCOFFLoaderSectionHeader = Args.hasArg(OPT_loader_section_header);
opts::XCOFFLoaderSectionSymbol = Args.hasArg(OPT_loader_section_symbols);
+ opts::XCOFFLoaderSectionRelocation =
+ Args.hasArg(OPT_loader_section_relocations);
opts::XCOFFExceptionSection = Args.hasArg(OPT_exception_section);
opts::InputFilenames = Args.getAllArgValues(OPT_INPUT);
@@ -512,9 +515,11 @@ static void dumpObject(ObjectFile &Obj, ScopedPrinter &Writer,
}
if (Obj.isXCOFF()) {
- if (opts::XCOFFLoaderSectionHeader || opts::XCOFFLoaderSectionSymbol)
+ if (opts::XCOFFLoaderSectionHeader || opts::XCOFFLoaderSectionSymbol ||
+ opts::XCOFFLoaderSectionRelocation)
Dumper->printLoaderSection(opts::XCOFFLoaderSectionHeader,
- opts::XCOFFLoaderSectionSymbol);
+ opts::XCOFFLoaderSectionSymbol,
+ opts::XCOFFLoaderSectionRelocation);
if (opts::XCOFFExceptionSection)
Dumper->printExceptionSection();