summaryrefslogtreecommitdiffstats
path: root/llvm/tools/llvm-objdump/llvm-objdump.h
diff options
context:
space:
mode:
authorDave Lee <davelee.com@gmail.com>2018-08-03 00:06:38 +0000
committerDave Lee <davelee.com@gmail.com>2018-08-03 00:06:38 +0000
commit3fb120f12eb612b66208496b96b4735f43aac864 (patch)
treec83eb7491615e33b08cd9f7d1cf208e0477b86cd /llvm/tools/llvm-objdump/llvm-objdump.h
parent1ba5e9ac249fc425abe4f1be70d04960c0ce957a (diff)
downloadbcm5719-llvm-3fb120f12eb612b66208496b96b4735f43aac864.tar.gz
bcm5719-llvm-3fb120f12eb612b66208496b96b4735f43aac864.zip
objdump: Better handling of Mach-O universal binaries
Summary: With Mach-O, there is a flag requirement discrepancy between working with universal binaries and thin binaries. Many flags that don't require the `-macho` flag (for example `-private-headers` and `-disassemble`) fail to work on universal binaries unless `-macho` is given. When this happens, the error message is unhelpful, stating: The file was not recognized as a valid object file. Which can lead to confusion. This change allows generic flags to be used on universal binaries with and without the `-macho` flag. This means flags that can be used for thin files can be used consistently with fat files too. To do this, the universal binary support within `ParseInputMachO()` is extracted into a new function. This new function is called directly from `DumpInput()` when the input binary is universal. Additionally the `-arch` flag validation in `ParseInputMachO()` was extracted to be reused. Reviewers: compnerd Reviewed By: compnerd Subscribers: keith, llvm-commits Differential Revision: https://reviews.llvm.org/D48702 llvm-svn: 338792
Diffstat (limited to 'llvm/tools/llvm-objdump/llvm-objdump.h')
-rw-r--r--llvm/tools/llvm-objdump/llvm-objdump.h2
1 files changed, 2 insertions, 0 deletions
diff --git a/llvm/tools/llvm-objdump/llvm-objdump.h b/llvm/tools/llvm-objdump/llvm-objdump.h
index b2eb6e9d777..65867c25f8c 100644
--- a/llvm/tools/llvm-objdump/llvm-objdump.h
+++ b/llvm/tools/llvm-objdump/llvm-objdump.h
@@ -22,6 +22,7 @@ namespace object {
class COFFObjectFile;
class COFFImportFile;
class MachOObjectFile;
+ class MachOUniversalBinary;
class ObjectFile;
class Archive;
class RelocationRef;
@@ -71,6 +72,7 @@ extern cl::opt<DIDumpType> DwarfDumpType;
void error(std::error_code ec);
bool RelocAddressLess(object::RelocationRef a, object::RelocationRef b);
void ParseInputMachO(StringRef Filename);
+void ParseInputMachO(object::MachOUniversalBinary *UB);
void printCOFFUnwindInfo(const object::COFFObjectFile* o);
void printMachOUnwindInfo(const object::MachOObjectFile* o);
void printMachOExportsTrie(const object::MachOObjectFile* o);
OpenPOWER on IntegriCloud