summaryrefslogtreecommitdiffstats
path: root/llvm/tools/llvm-readobj/MachODumper.cpp
diff options
context:
space:
mode:
authorTim Northover <tnorthover@apple.com>2015-10-28 22:36:05 +0000
committerTim Northover <tnorthover@apple.com>2015-10-28 22:36:05 +0000
commit2d4d1615197efeb044f62d6a8721704839cd5337 (patch)
tree80c103f916b365a001660bd021d2130c367b34b9 /llvm/tools/llvm-readobj/MachODumper.cpp
parent748b3ffe3b8d83e2405e41c572cc19bc9f211053 (diff)
downloadbcm5719-llvm-2d4d1615197efeb044f62d6a8721704839cd5337.tar.gz
bcm5719-llvm-2d4d1615197efeb044f62d6a8721704839cd5337.zip
ARM: support .watchos_version_min and .tvos_version_min.
These MachO file directives are used by linkers and other tools to provide compatibility information, much like the existing .ios_version_min and .macosx_version_min. llvm-svn: 251569
Diffstat (limited to 'llvm/tools/llvm-readobj/MachODumper.cpp')
-rw-r--r--llvm/tools/llvm-readobj/MachODumper.cpp68
1 files changed, 38 insertions, 30 deletions
diff --git a/llvm/tools/llvm-readobj/MachODumper.cpp b/llvm/tools/llvm-readobj/MachODumper.cpp
index ab77fdcf136..58d2c9fca47 100644
--- a/llvm/tools/llvm-readobj/MachODumper.cpp
+++ b/llvm/tools/llvm-readobj/MachODumper.cpp
@@ -694,38 +694,46 @@ void MachODumper::printMachODataInCode() {
void MachODumper::printMachOVersionMin() {
for (const auto &Load : Obj->load_commands()) {
- if (Load.C.cmd == MachO::LC_VERSION_MIN_MACOSX ||
- Load.C.cmd == MachO::LC_VERSION_MIN_IPHONEOS) {
- MachO::version_min_command VMC = Obj->getVersionMinLoadCommand(Load);
- DictScope Group(W, "MinVersion");
- StringRef Cmd;
- if (Load.C.cmd == MachO::LC_VERSION_MIN_MACOSX)
- Cmd = "LC_VERSION_MIN_MACOSX";
- else
- Cmd = "LC_VERSION_MIN_IPHONEOS";
- W.printString("Cmd", Cmd);
- W.printNumber("Size", VMC.cmdsize);
- SmallString<32> Version;
- Version = utostr(MachOObjectFile::getVersionMinMajor(VMC, false)) + "." +
- utostr(MachOObjectFile::getVersionMinMinor(VMC, false));
- uint32_t Update = MachOObjectFile::getVersionMinUpdate(VMC, false);
+ StringRef Cmd;
+ switch (Load.C.cmd) {
+ case MachO::LC_VERSION_MIN_MACOSX:
+ Cmd = "LC_VERSION_MIN_MACOSX";
+ break;
+ case MachO::LC_VERSION_MIN_IPHONEOS:
+ Cmd = "LC_VERSION_MIN_IPHONEOS";
+ break;
+ case MachO::LC_VERSION_MIN_TVOS:
+ Cmd = "LC_VERSION_MIN_TVOS";
+ break;
+ case MachO::LC_VERSION_MIN_WATCHOS:
+ Cmd = "LC_VERSION_MIN_WATCHOS";
+ break;
+ default:
+ continue;
+ }
+
+ MachO::version_min_command VMC = Obj->getVersionMinLoadCommand(Load);
+ DictScope Group(W, "MinVersion");
+ W.printString("Cmd", Cmd);
+ W.printNumber("Size", VMC.cmdsize);
+ SmallString<32> Version;
+ Version = utostr(MachOObjectFile::getVersionMinMajor(VMC, false)) + "." +
+ utostr(MachOObjectFile::getVersionMinMinor(VMC, false));
+ uint32_t Update = MachOObjectFile::getVersionMinUpdate(VMC, false);
+ if (Update != 0)
+ Version += "." + utostr(MachOObjectFile::getVersionMinUpdate(VMC, false));
+ W.printString("Version", Version);
+ SmallString<32> SDK;
+ if (VMC.sdk == 0)
+ SDK = "n/a";
+ else {
+ SDK = utostr(MachOObjectFile::getVersionMinMajor(VMC, true)) + "." +
+ utostr(MachOObjectFile::getVersionMinMinor(VMC, true));
+ uint32_t Update = MachOObjectFile::getVersionMinUpdate(VMC, true);
if (Update != 0)
- Version += "." + utostr(MachOObjectFile::getVersionMinUpdate(VMC,
- false));
- W.printString("Version", Version);
- SmallString<32> SDK;
- if (VMC.sdk == 0)
- SDK = "n/a";
- else {
- SDK = utostr(MachOObjectFile::getVersionMinMajor(VMC, true)) + "." +
- utostr(MachOObjectFile::getVersionMinMinor(VMC, true));
- uint32_t Update = MachOObjectFile::getVersionMinUpdate(VMC, true);
- if (Update != 0)
- SDK += "." + utostr(MachOObjectFile::getVersionMinUpdate(VMC,
- true));
- }
- W.printString("SDK", SDK);
+ SDK += "." + utostr(MachOObjectFile::getVersionMinUpdate(VMC, true));
}
+ W.printString("SDK", SDK);
}
}
OpenPOWER on IntegriCloud