aboutsummaryrefslogtreecommitdiff
path: root/llvm/tools/llvm-readobj/llvm-readobj.cpp
diff options
context:
space:
mode:
authorVy Nguyen <vyng@google.com>2022-03-31 09:33:04 -0400
committerVy Nguyen <vyng@google.com>2022-03-31 09:33:32 -0400
commit33b3c86afab06ad61d46456c85c0b565cfff8287 (patch)
tree1b5d1e71bbc736ccd477f73dd4be3e3bf91623a7 /llvm/tools/llvm-readobj/llvm-readobj.cpp
parentcb055e51f994806160465212ac100485dac48125 (diff)
downloadllvm-33b3c86afab06ad61d46456c85c0b565cfff8287.zip
llvm-33b3c86afab06ad61d46456c85c0b565cfff8287.tar.gz
llvm-33b3c86afab06ad61d46456c85c0b565cfff8287.tar.bz2
Revert "[llvm-readobj][MachO] Add option to sort the symbol table before dumping (MachO only, for now)."
This reverts commit ea9cf2dc96c765773ee574a9189d529175a57751. Broke LLDB - reverting to investigage
Diffstat (limited to 'llvm/tools/llvm-readobj/llvm-readobj.cpp')
-rw-r--r--llvm/tools/llvm-readobj/llvm-readobj.cpp53
1 files changed, 1 insertions, 52 deletions
diff --git a/llvm/tools/llvm-readobj/llvm-readobj.cpp b/llvm/tools/llvm-readobj/llvm-readobj.cpp
index e1ebbeb..543b0de 100644
--- a/llvm/tools/llvm-readobj/llvm-readobj.cpp
+++ b/llvm/tools/llvm-readobj/llvm-readobj.cpp
@@ -21,7 +21,6 @@
#include "llvm-readobj.h"
#include "ObjDumper.h"
#include "WindowsResourceDumper.h"
-#include "llvm/ADT/Optional.h"
#include "llvm/DebugInfo/CodeView/GlobalTypeTableBuilder.h"
#include "llvm/DebugInfo/CodeView/MergingTypeTableBuilder.h"
#include "llvm/MC/TargetRegistry.h"
@@ -84,14 +83,6 @@ public:
};
enum OutputFormatTy { bsd, sysv, posix, darwin, just_symbols };
-
-enum SortSymbolKeyTy {
- NAME = 0,
- TYPE = 1,
- UNKNOWN = 100,
- // TODO: add ADDRESS, SIZE as needed.
-};
-
} // namespace
namespace opts {
@@ -122,7 +113,6 @@ static bool StringTable;
static bool Symbols;
static bool UnwindInfo;
static cl::boolOrDefault SectionMapping;
-static SmallVector<SortSymbolKeyTy> SortKeys;
// ELF specific options.
static bool DynamicTable;
@@ -263,19 +253,6 @@ static void parseOptions(const opt::InputArgList &Args) {
opts::ProgramHeaders = Args.hasArg(OPT_program_headers);
opts::RawRelr = Args.hasArg(OPT_raw_relr);
opts::SectionGroups = Args.hasArg(OPT_section_groups);
- if (Arg *A = Args.getLastArg(OPT_sort_symbols_EQ)) {
- std::string SortKeysString = A->getValue();
- for (StringRef KeyStr : llvm::split(A->getValue(), ",")) {
- SortSymbolKeyTy KeyType = StringSwitch<SortSymbolKeyTy>(KeyStr)
- .Case("name", SortSymbolKeyTy::NAME)
- .Case("type", SortSymbolKeyTy::TYPE)
- .Default(SortSymbolKeyTy::UNKNOWN);
- if (KeyType == SortSymbolKeyTy::UNKNOWN)
- error("--sort-symbols value should be 'name' or 'type', but was '" +
- Twine(KeyStr) + "'");
- opts::SortKeys.push_back(KeyType);
- }
- }
opts::VersionInfo = Args.hasArg(OPT_version_info);
// Mach-O specific options.
@@ -357,39 +334,11 @@ static void dumpObject(ObjectFile &Obj, ScopedPrinter &Writer,
toString(std::move(ContentErr));
ObjDumper *Dumper;
- Optional<SymbolComparator> SymComp;
Expected<std::unique_ptr<ObjDumper>> DumperOrErr = createDumper(Obj, Writer);
if (!DumperOrErr)
reportError(DumperOrErr.takeError(), FileStr);
Dumper = (*DumperOrErr).get();
- if (!opts::SortKeys.empty()) {
- if (Dumper->canCompareSymbols()) {
- SymComp = SymbolComparator();
- for (SortSymbolKeyTy Key : opts::SortKeys) {
- switch (Key) {
- case NAME:
- SymComp->addPredicate([Dumper](SymbolRef LHS, SymbolRef RHS) {
- return Dumper->compareSymbolsByName(LHS, RHS);
- });
- break;
- case TYPE:
- SymComp->addPredicate([Dumper](SymbolRef LHS, SymbolRef RHS) {
- return Dumper->compareSymbolsByType(LHS, RHS);
- });
- break;
- case UNKNOWN:
- llvm_unreachable("Unsupported sort key");
- }
- }
-
- } else {
- reportWarning(createStringError(
- errc::invalid_argument,
- "--sort-symbols is not supported yet for this format"),
- FileStr);
- }
- }
Dumper->printFileSummary(FileStr, Obj, opts::InputFilenames, A);
if (opts::FileHeaders)
@@ -425,7 +374,7 @@ 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);
if (!opts::StringDump.empty())
Dumper->printSectionsAsString(Obj, opts::StringDump);
if (!opts::HexDump.empty())