When ObjectFileMachO::GetModuleSpecifications is getting the ArchSpec
out of a binary, if the Mach-O binary is MH_PRELOAD ("standalone"), don't
let the OS be set to "ios" or "macosx" - there will be no dynamic loader
used when debugging this process.
<rdar://problem/9956443> 

llvm-svn: 189305
diff --git a/lldb/source/Plugins/ObjectFile/Mach-O/ObjectFileMachO.cpp b/lldb/source/Plugins/ObjectFile/Mach-O/ObjectFileMachO.cpp
index 88213c7..9f1d154 100644
--- a/lldb/source/Plugins/ObjectFile/Mach-O/ObjectFileMachO.cpp
+++ b/lldb/source/Plugins/ObjectFile/Mach-O/ObjectFileMachO.cpp
@@ -523,6 +523,11 @@
                 spec.GetArchitecture().SetArchitecture(eArchTypeMachO,
                                                        header.cputype,
                                                        header.cpusubtype);
+                if (header.filetype == HeaderFileTypePreloadedExecutable) // 0x5u MH_PRELOAD
+                {
+                    // Set OS to "unknown" - this is a standalone binary with no dyld et al
+                    spec.GetArchitecture().GetTriple().setOS (llvm::Triple::UnknownOS);
+                }
                 if (spec.GetArchitecture().IsValid())
                 {
                     GetUUID (header, data, data_offset, spec.GetUUID());