aboutsummaryrefslogtreecommitdiff
path: root/llvm/tools/llvm-readobj/llvm-readobj.cpp
diff options
context:
space:
mode:
authorMitch Phillips <31459023+hctim@users.noreply.github.com>2023-03-01 10:49:39 -0800
committerMitch Phillips <31459023+hctim@users.noreply.github.com>2023-03-01 10:59:59 -0800
commita4d39d4b69b265ee41b08cd04f5292e3ddb31aeb (patch)
tree11591847e95a1292068f2daccd6da333c3250dc5 /llvm/tools/llvm-readobj/llvm-readobj.cpp
parentc891ef6ca01464cec9d1a53f9be0d0332999101f (diff)
downloadllvm-a4d39d4b69b265ee41b08cd04f5292e3ddb31aeb.zip
llvm-a4d39d4b69b265ee41b08cd04f5292e3ddb31aeb.tar.gz
llvm-a4d39d4b69b265ee41b08cd04f5292e3ddb31aeb.tar.bz2
[llvm-readobj] Add --memtag
This adds functionality to readelf/readobj to specifically handle MTE-related bits, like the AARCH64_MEMTAG_* dynamic entries, and a decoder for the Android-specific ELF note. Reviewed By: jhenderson, MaskRay Differential Revision: https://reviews.llvm.org/D143693
Diffstat (limited to 'llvm/tools/llvm-readobj/llvm-readobj.cpp')
-rw-r--r--llvm/tools/llvm-readobj/llvm-readobj.cpp5
1 files changed, 5 insertions, 0 deletions
diff --git a/llvm/tools/llvm-readobj/llvm-readobj.cpp b/llvm/tools/llvm-readobj/llvm-readobj.cpp
index aa49e30..d72eec0 100644
--- a/llvm/tools/llvm-readobj/llvm-readobj.cpp
+++ b/llvm/tools/llvm-readobj/llvm-readobj.cpp
@@ -136,6 +136,7 @@ static bool GnuHashTable;
static bool HashSymbols;
static bool HashTable;
static bool HashHistogram;
+static bool Memtag;
static bool NeededLibraries;
static bool Notes;
static bool ProgramHeaders;
@@ -266,6 +267,7 @@ static void parseOptions(const opt::InputArgList &Args) {
opts::HashSymbols = Args.hasArg(OPT_hash_symbols);
opts::HashTable = Args.hasArg(OPT_hash_table);
opts::HashHistogram = Args.hasArg(OPT_histogram);
+ opts::Memtag = Args.hasArg(OPT_memtag);
opts::NeededLibraries = Args.hasArg(OPT_needed_libs);
opts::Notes = Args.hasArg(OPT_notes);
opts::PrettyPrint = Args.hasArg(OPT_pretty_print);
@@ -473,6 +475,8 @@ static void dumpObject(ObjectFile &Obj, ScopedPrinter &Writer,
Dumper->printAddrsig();
if (opts::Notes)
Dumper->printNotes();
+ if (opts::Memtag)
+ Dumper->printMemtag();
}
if (Obj.isCOFF()) {
if (opts::COFFImports)
@@ -684,6 +688,7 @@ int llvm_readobj_main(int argc, char **argv, const llvm::ToolContext &) {
opts::Addrsig = true;
opts::PrintStackSizes = true;
}
+ opts::Memtag = true;
}
if (opts::Headers) {