diff options
author | Mitch Phillips <31459023+hctim@users.noreply.github.com> | 2023-03-01 10:49:39 -0800 |
---|---|---|
committer | Mitch Phillips <31459023+hctim@users.noreply.github.com> | 2023-03-01 10:59:59 -0800 |
commit | a4d39d4b69b265ee41b08cd04f5292e3ddb31aeb (patch) | |
tree | 11591847e95a1292068f2daccd6da333c3250dc5 /llvm/tools/llvm-readobj/llvm-readobj.cpp | |
parent | c891ef6ca01464cec9d1a53f9be0d0332999101f (diff) | |
download | llvm-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.cpp | 5 |
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) { |