diff options
author | Tomohiro Kashiwada <kikairoya@gmail.com> | 2025-08-28 05:16:42 +0900 |
---|---|---|
committer | GitHub <noreply@github.com> | 2025-08-27 23:16:42 +0300 |
commit | faf6ba47bf90be1a2c3dbcf02927f1e262c69c32 (patch) | |
tree | 0893de157bddb239436017f7b1f68a98f0b92f8f /llvm/tools/llvm-readobj/llvm-readobj.cpp | |
parent | 5bae3662a6892ae370685a8c41ef1dd6b17dca67 (diff) | |
download | llvm-faf6ba47bf90be1a2c3dbcf02927f1e262c69c32.zip llvm-faf6ba47bf90be1a2c3dbcf02927f1e262c69c32.tar.gz llvm-faf6ba47bf90be1a2c3dbcf02927f1e262c69c32.tar.bz2 |
[llvm-readobj][COFF] Implement --coff-pseudoreloc in llvm-readobj to dump runtime pseudo-relocation records (#151816)
MinGW toolchain uses "runtime pseudo-relocation" mechanism to support
auto-importing symbols from DLLs.
There is no commonly used tools for dump the pseudo-relocation records,
so we implement that functionality in llvm-readobj.
Diffstat (limited to 'llvm/tools/llvm-readobj/llvm-readobj.cpp')
-rw-r--r-- | llvm/tools/llvm-readobj/llvm-readobj.cpp | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/llvm/tools/llvm-readobj/llvm-readobj.cpp b/llvm/tools/llvm-readobj/llvm-readobj.cpp index 4c84ed7..2b34761 100644 --- a/llvm/tools/llvm-readobj/llvm-readobj.cpp +++ b/llvm/tools/llvm-readobj/llvm-readobj.cpp @@ -154,6 +154,7 @@ static bool CodeViewEnableGHash; static bool CodeViewMergedTypes; bool CodeViewSubsectionBytes; static bool COFFBaseRelocs; +static bool COFFPseudoRelocs; static bool COFFDebugDirectory; static bool COFFDirectives; static bool COFFExports; @@ -305,6 +306,7 @@ static void parseOptions(const opt::InputArgList &Args) { opts::CodeViewMergedTypes = Args.hasArg(OPT_codeview_merged_types); opts::CodeViewSubsectionBytes = Args.hasArg(OPT_codeview_subsection_bytes); opts::COFFBaseRelocs = Args.hasArg(OPT_coff_basereloc); + opts::COFFPseudoRelocs = Args.hasArg(OPT_coff_pseudoreloc); opts::COFFDebugDirectory = Args.hasArg(OPT_coff_debug_directory); opts::COFFDirectives = Args.hasArg(OPT_coff_directives); opts::COFFExports = Args.hasArg(OPT_coff_exports); @@ -492,6 +494,8 @@ static void dumpObject(ObjectFile &Obj, ScopedPrinter &Writer, Dumper->printCOFFDirectives(); if (opts::COFFBaseRelocs) Dumper->printCOFFBaseReloc(); + if (opts::COFFPseudoRelocs) + Dumper->printCOFFPseudoReloc(); if (opts::COFFDebugDirectory) Dumper->printCOFFDebugDirectory(); if (opts::COFFTLSDirectory) |