diff options
author | Fangrui Song <i@maskray.me> | 2023-09-11 11:08:58 -0700 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-09-11 11:08:58 -0700 |
commit | eb81493e95c9f0e7feecd699758caa56b7d3514e (patch) | |
tree | 5a65de89e004eed486caeea9b0e8c38283bbbc6f /llvm/tools/llvm-readobj/llvm-readobj.cpp | |
parent | 76af6e77c0e5d8c444daa3aea07f381c07b17da7 (diff) | |
download | llvm-eb81493e95c9f0e7feecd699758caa56b7d3514e.zip llvm-eb81493e95c9f0e7feecd699758caa56b7d3514e.tar.gz llvm-eb81493e95c9f0e7feecd699758caa56b7d3514e.tar.bz2 |
[llvm-readelf] Add --extra-sym-info (#65580)
GNU readelf introduced --extra-sym-info/-X to display the section name
for --syms (https://sourceware.org/PR30684). Port the feature, which is
currently llvm-readelf only.
For STO_AARCH64_VARIANT_PCS/STO_RISCV_VARIANT_PCS, the Ndx and Name
columns may not be aligned.
Diffstat (limited to 'llvm/tools/llvm-readobj/llvm-readobj.cpp')
-rw-r--r-- | llvm/tools/llvm-readobj/llvm-readobj.cpp | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/llvm/tools/llvm-readobj/llvm-readobj.cpp b/llvm/tools/llvm-readobj/llvm-readobj.cpp index 8a10df4..ca633ce 100644 --- a/llvm/tools/llvm-readobj/llvm-readobj.cpp +++ b/llvm/tools/llvm-readobj/llvm-readobj.cpp @@ -102,6 +102,7 @@ bool Demangle; static bool DependentLibraries; static bool DynRelocs; static bool DynamicSymbols; +static bool ExtraSymInfo; static bool FileHeaders; static bool Headers; static std::vector<std::string> HexDump; @@ -217,6 +218,7 @@ static void parseOptions(const opt::InputArgList &Args) { opts::DynRelocs = Args.hasArg(OPT_dyn_relocations); opts::DynamicSymbols = Args.hasArg(OPT_dyn_syms); opts::ExpandRelocs = Args.hasArg(OPT_expand_relocs); + opts::ExtraSymInfo = Args.hasArg(OPT_extra_sym_info); opts::FileHeaders = Args.hasArg(OPT_file_header); opts::Headers = Args.hasArg(OPT_headers); opts::HexDump = Args.getAllArgValues(OPT_hex_dump_EQ); @@ -435,7 +437,8 @@ static void dumpObject(ObjectFile &Obj, ScopedPrinter &Writer, if (opts::UnwindInfo) Dumper->printUnwindInfo(); if (opts::Symbols || opts::DynamicSymbols) - Dumper->printSymbols(opts::Symbols, opts::DynamicSymbols, SymComp); + Dumper->printSymbols(opts::Symbols, opts::DynamicSymbols, + opts::ExtraSymInfo, SymComp); if (!opts::StringDump.empty()) Dumper->printSectionsAsString(Obj, opts::StringDump); if (!opts::HexDump.empty()) |