From eb81493e95c9f0e7feecd699758caa56b7d3514e Mon Sep 17 00:00:00 2001 From: Fangrui Song Date: Mon, 11 Sep 2023 11:08:58 -0700 Subject: [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. --- llvm/tools/llvm-readobj/llvm-readobj.cpp | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) (limited to 'llvm/tools/llvm-readobj/llvm-readobj.cpp') 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 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()) -- cgit v1.1