[Lldb-commits] [lldb] r253763 - Add code to PlatformDarwin and HostInfoMacOSX so they return the

Jason Molenda via lldb-commits lldb-commits at lists.llvm.org
Fri Nov 20 20:00:43 PST 2015


Author: jmolenda
Date: Fri Nov 20 22:00:43 2015
New Revision: 253763

URL: http://llvm.org/viewvc/llvm-project?rev=253763&view=rev
Log:
Add code to PlatformDarwin and HostInfoMacOSX so they return the
correct OS type when running on an apple tv or apple watch.
Also, in TargetList::CreateTargetInternal, check that a platform
is returned by GetPlatformForArchitecture fallback instead of 
adding it to the vector of platforms unconditionally; we can end up
crashing when we call a member function on it later.

<rdar://problem/23601982>, <rdar://problem/21292886>

Modified:
    lldb/trunk/source/Host/macosx/HostInfoMacOSX.mm
    lldb/trunk/source/Plugins/Platform/MacOSX/PlatformDarwin.cpp
    lldb/trunk/source/Target/TargetList.cpp

Modified: lldb/trunk/source/Host/macosx/HostInfoMacOSX.mm
URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/source/Host/macosx/HostInfoMacOSX.mm?rev=253763&r1=253762&r2=253763&view=diff
==============================================================================
--- lldb/trunk/source/Host/macosx/HostInfoMacOSX.mm (original)
+++ lldb/trunk/source/Host/macosx/HostInfoMacOSX.mm Fri Nov 20 22:00:43 2015
@@ -45,6 +45,8 @@
 #define CPU_TYPE_ARM64 (CPU_TYPE_ARM|CPU_ARCH_ABI64)
 #endif
 
+#include <TargetConditionals.h> // for TARGET_OS_TV, TARGET_OS_WATCH
+
 using namespace lldb_private;
 
 bool
@@ -340,8 +342,14 @@ HostInfoMacOSX::ComputeHostArchitectureS
 
             if (cputype == CPU_TYPE_ARM || cputype == CPU_TYPE_ARM64)
             {
+                // When running on a watch or tv, report the host os correctly
+#if defined (TARGET_OS_TV) && TARGET_OS_TV == 1
+                arch_32.GetTriple().setOS(llvm::Triple::TvOS);
+                arch_64.GetTriple().setOS(llvm::Triple::TvOS);
+#else
                 arch_32.GetTriple().setOS(llvm::Triple::IOS);
                 arch_64.GetTriple().setOS(llvm::Triple::IOS);
+#endif
             }
             else
             {
@@ -353,6 +361,11 @@ HostInfoMacOSX::ComputeHostArchitectureS
         {
             // We have a 32 bit kernel on a 32 bit system
             arch_32.SetArchitecture(eArchTypeMachO, cputype, cpusubtype);
+#if defined (TARGET_OS_WATCH) && TARGET_OS_WATCH == 1
+            arch_32.GetTriple().setOS(llvm::Triple::WatchOS);
+#else
+            arch_32.GetTriple().setOS(llvm::Triple::IOS);
+#endif
             arch_64.Clear();
         }
     }

Modified: lldb/trunk/source/Plugins/Platform/MacOSX/PlatformDarwin.cpp
URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/source/Plugins/Platform/MacOSX/PlatformDarwin.cpp?rev=253763&r1=253762&r2=253763&view=diff
==============================================================================
--- lldb/trunk/source/Plugins/Platform/MacOSX/PlatformDarwin.cpp (original)
+++ lldb/trunk/source/Plugins/Platform/MacOSX/PlatformDarwin.cpp Fri Nov 20 22:00:43 2015
@@ -41,6 +41,10 @@
 #include "lldb/Target/Target.h"
 #include "llvm/ADT/STLExtras.h"
 
+#if defined (__APPLE__)
+#include <TargetConditionals.h> // for TARGET_OS_TV, TARGET_OS_WATCH
+#endif
+
 using namespace lldb;
 using namespace lldb_private;
     
@@ -761,35 +765,44 @@ PlatformDarwin::ARMGetSupportedArchitect
 {
     ArchSpec system_arch (GetSystemArchitecture());
 
+    // When lldb is running on a watch or tv, set the arch OS name appropriately.
+#if defined (TARGET_OS_TV) && TARGET_OS_TV == 1
+#define OSNAME "tvos"
+#elif defined (TARGET_OS_WATCH) && TARGET_OS_WATCH == 1
+#define OSNAME "watchos"
+#else
+#define OSNAME "ios"
+#endif
+
     const ArchSpec::Core system_core = system_arch.GetCore();
     switch (system_core)
     {
     default:
         switch (idx)
         {
-            case  0: arch.SetTriple ("arm64-apple-ios");    return true;
-            case  1: arch.SetTriple ("armv7-apple-ios");    return true;
-            case  2: arch.SetTriple ("armv7f-apple-ios");   return true;
-            case  3: arch.SetTriple ("armv7k-apple-ios");   return true;
-            case  4: arch.SetTriple ("armv7s-apple-ios");   return true;
-            case  5: arch.SetTriple ("armv7m-apple-ios");   return true;
-            case  6: arch.SetTriple ("armv7em-apple-ios");  return true;
-            case  7: arch.SetTriple ("armv6m-apple-ios");   return true;
-            case  8: arch.SetTriple ("armv6-apple-ios");    return true;
-            case  9: arch.SetTriple ("armv5-apple-ios");    return true;
-            case 10: arch.SetTriple ("armv4-apple-ios");    return true;
-            case 11: arch.SetTriple ("arm-apple-ios");      return true;
-            case 12: arch.SetTriple ("thumbv7-apple-ios");  return true;
-            case 13: arch.SetTriple ("thumbv7f-apple-ios"); return true;
-            case 14: arch.SetTriple ("thumbv7k-apple-ios"); return true;
-            case 15: arch.SetTriple ("thumbv7s-apple-ios"); return true;
-            case 16: arch.SetTriple ("thumbv7m-apple-ios"); return true;
-            case 17: arch.SetTriple ("thumbv7em-apple-ios"); return true;
-            case 18: arch.SetTriple ("thumbv6m-apple-ios"); return true;
-            case 19: arch.SetTriple ("thumbv6-apple-ios");  return true;
-            case 20: arch.SetTriple ("thumbv5-apple-ios");  return true;
-            case 21: arch.SetTriple ("thumbv4t-apple-ios"); return true;
-            case 22: arch.SetTriple ("thumb-apple-ios");    return true;
+            case  0: arch.SetTriple ("arm64-apple-" OSNAME);    return true;
+            case  1: arch.SetTriple ("armv7-apple-" OSNAME);    return true;
+            case  2: arch.SetTriple ("armv7f-apple-" OSNAME);   return true;
+            case  3: arch.SetTriple ("armv7k-apple-" OSNAME);   return true;
+            case  4: arch.SetTriple ("armv7s-apple-" OSNAME);   return true;
+            case  5: arch.SetTriple ("armv7m-apple-" OSNAME);   return true;
+            case  6: arch.SetTriple ("armv7em-apple-" OSNAME);  return true;
+            case  7: arch.SetTriple ("armv6m-apple-" OSNAME);   return true;
+            case  8: arch.SetTriple ("armv6-apple-" OSNAME);    return true;
+            case  9: arch.SetTriple ("armv5-apple-" OSNAME);    return true;
+            case 10: arch.SetTriple ("armv4-apple-" OSNAME);    return true;
+            case 11: arch.SetTriple ("arm-apple-" OSNAME);      return true;
+            case 12: arch.SetTriple ("thumbv7-apple-" OSNAME);  return true;
+            case 13: arch.SetTriple ("thumbv7f-apple-" OSNAME); return true;
+            case 14: arch.SetTriple ("thumbv7k-apple-" OSNAME); return true;
+            case 15: arch.SetTriple ("thumbv7s-apple-" OSNAME); return true;
+            case 16: arch.SetTriple ("thumbv7m-apple-" OSNAME); return true;
+            case 17: arch.SetTriple ("thumbv7em-apple-" OSNAME); return true;
+            case 18: arch.SetTriple ("thumbv6m-apple-" OSNAME); return true;
+            case 19: arch.SetTriple ("thumbv6-apple-" OSNAME);  return true;
+            case 20: arch.SetTriple ("thumbv5-apple-" OSNAME);  return true;
+            case 21: arch.SetTriple ("thumbv4t-apple-" OSNAME); return true;
+            case 22: arch.SetTriple ("thumb-apple-" OSNAME);    return true;
             default: break;
         }
         break;
@@ -797,28 +810,28 @@ PlatformDarwin::ARMGetSupportedArchitect
     case ArchSpec::eCore_arm_arm64:
         switch (idx)
         {
-            case  0: arch.SetTriple ("arm64-apple-ios");   return true;
-            case  1: arch.SetTriple ("armv7s-apple-ios");   return true;
-            case  2: arch.SetTriple ("armv7f-apple-ios");   return true;
-            case  3: arch.SetTriple ("armv7m-apple-ios");   return true;
-            case  4: arch.SetTriple ("armv7em-apple-ios");  return true;
-            case  5: arch.SetTriple ("armv7-apple-ios");    return true;
-            case  6: arch.SetTriple ("armv6m-apple-ios");   return true;
-            case  7: arch.SetTriple ("armv6-apple-ios");    return true;
-            case  8: arch.SetTriple ("armv5-apple-ios");    return true;
-            case  9: arch.SetTriple ("armv4-apple-ios");    return true;
-            case 10: arch.SetTriple ("arm-apple-ios");      return true;
-            case 11: arch.SetTriple ("thumbv7-apple-ios");  return true;
-            case 12: arch.SetTriple ("thumbv7f-apple-ios"); return true;
-            case 13: arch.SetTriple ("thumbv7k-apple-ios"); return true;
-            case 14: arch.SetTriple ("thumbv7s-apple-ios"); return true;
-            case 15: arch.SetTriple ("thumbv7m-apple-ios"); return true;
-            case 16: arch.SetTriple ("thumbv7em-apple-ios"); return true;
-            case 17: arch.SetTriple ("thumbv6m-apple-ios"); return true;
-            case 18: arch.SetTriple ("thumbv6-apple-ios");  return true;
-            case 19: arch.SetTriple ("thumbv5-apple-ios");  return true;
-            case 20: arch.SetTriple ("thumbv4t-apple-ios"); return true;
-            case 21: arch.SetTriple ("thumb-apple-ios");    return true;
+            case  0: arch.SetTriple ("arm64-apple-" OSNAME);   return true;
+            case  1: arch.SetTriple ("armv7s-apple-" OSNAME);   return true;
+            case  2: arch.SetTriple ("armv7f-apple-" OSNAME);   return true;
+            case  3: arch.SetTriple ("armv7m-apple-" OSNAME);   return true;
+            case  4: arch.SetTriple ("armv7em-apple-" OSNAME);  return true;
+            case  5: arch.SetTriple ("armv7-apple-" OSNAME);    return true;
+            case  6: arch.SetTriple ("armv6m-apple-" OSNAME);   return true;
+            case  7: arch.SetTriple ("armv6-apple-" OSNAME);    return true;
+            case  8: arch.SetTriple ("armv5-apple-" OSNAME);    return true;
+            case  9: arch.SetTriple ("armv4-apple-" OSNAME);    return true;
+            case 10: arch.SetTriple ("arm-apple-" OSNAME);      return true;
+            case 11: arch.SetTriple ("thumbv7-apple-" OSNAME);  return true;
+            case 12: arch.SetTriple ("thumbv7f-apple-" OSNAME); return true;
+            case 13: arch.SetTriple ("thumbv7k-apple-" OSNAME); return true;
+            case 14: arch.SetTriple ("thumbv7s-apple-" OSNAME); return true;
+            case 15: arch.SetTriple ("thumbv7m-apple-" OSNAME); return true;
+            case 16: arch.SetTriple ("thumbv7em-apple-" OSNAME); return true;
+            case 17: arch.SetTriple ("thumbv6m-apple-" OSNAME); return true;
+            case 18: arch.SetTriple ("thumbv6-apple-" OSNAME);  return true;
+            case 19: arch.SetTriple ("thumbv5-apple-" OSNAME);  return true;
+            case 20: arch.SetTriple ("thumbv4t-apple-" OSNAME); return true;
+            case 21: arch.SetTriple ("thumb-apple-" OSNAME);    return true;
         default: break;
         }
         break;
@@ -826,20 +839,20 @@ PlatformDarwin::ARMGetSupportedArchitect
     case ArchSpec::eCore_arm_armv7f:
         switch (idx)
         {
-            case  0: arch.SetTriple ("armv7f-apple-ios");   return true;
-            case  1: arch.SetTriple ("armv7-apple-ios");    return true;
-            case  2: arch.SetTriple ("armv6m-apple-ios");   return true;
-            case  3: arch.SetTriple ("armv6-apple-ios");    return true;
-            case  4: arch.SetTriple ("armv5-apple-ios");    return true;
-            case  5: arch.SetTriple ("armv4-apple-ios");    return true;
-            case  6: arch.SetTriple ("arm-apple-ios");      return true;
-            case  7: arch.SetTriple ("thumbv7f-apple-ios"); return true;
-            case  8: arch.SetTriple ("thumbv7-apple-ios");  return true;
-            case  9: arch.SetTriple ("thumbv6m-apple-ios"); return true;
-            case 10: arch.SetTriple ("thumbv6-apple-ios");  return true;
-            case 11: arch.SetTriple ("thumbv5-apple-ios");  return true;
-            case 12: arch.SetTriple ("thumbv4t-apple-ios"); return true;
-            case 13: arch.SetTriple ("thumb-apple-ios");    return true;
+            case  0: arch.SetTriple ("armv7f-apple-" OSNAME);   return true;
+            case  1: arch.SetTriple ("armv7-apple-" OSNAME);    return true;
+            case  2: arch.SetTriple ("armv6m-apple-" OSNAME);   return true;
+            case  3: arch.SetTriple ("armv6-apple-" OSNAME);    return true;
+            case  4: arch.SetTriple ("armv5-apple-" OSNAME);    return true;
+            case  5: arch.SetTriple ("armv4-apple-" OSNAME);    return true;
+            case  6: arch.SetTriple ("arm-apple-" OSNAME);      return true;
+            case  7: arch.SetTriple ("thumbv7f-apple-" OSNAME); return true;
+            case  8: arch.SetTriple ("thumbv7-apple-" OSNAME);  return true;
+            case  9: arch.SetTriple ("thumbv6m-apple-" OSNAME); return true;
+            case 10: arch.SetTriple ("thumbv6-apple-" OSNAME);  return true;
+            case 11: arch.SetTriple ("thumbv5-apple-" OSNAME);  return true;
+            case 12: arch.SetTriple ("thumbv4t-apple-" OSNAME); return true;
+            case 13: arch.SetTriple ("thumb-apple-" OSNAME);    return true;
             default: break;
         }
         break;
@@ -847,20 +860,20 @@ PlatformDarwin::ARMGetSupportedArchitect
     case ArchSpec::eCore_arm_armv7k:
         switch (idx)
         {
-            case  0: arch.SetTriple ("armv7k-apple-ios");   return true;
-            case  1: arch.SetTriple ("armv7-apple-ios");    return true;
-            case  2: arch.SetTriple ("armv6m-apple-ios");   return true;
-            case  3: arch.SetTriple ("armv6-apple-ios");    return true;
-            case  4: arch.SetTriple ("armv5-apple-ios");    return true;
-            case  5: arch.SetTriple ("armv4-apple-ios");    return true;
-            case  6: arch.SetTriple ("arm-apple-ios");      return true;
-            case  7: arch.SetTriple ("thumbv7k-apple-ios"); return true;
-            case  8: arch.SetTriple ("thumbv7-apple-ios");  return true;
-            case  9: arch.SetTriple ("thumbv6m-apple-ios"); return true;
-            case 10: arch.SetTriple ("thumbv6-apple-ios");  return true;
-            case 11: arch.SetTriple ("thumbv5-apple-ios");  return true;
-            case 12: arch.SetTriple ("thumbv4t-apple-ios"); return true;
-            case 13: arch.SetTriple ("thumb-apple-ios");    return true;
+            case  0: arch.SetTriple ("armv7k-apple-" OSNAME);   return true;
+            case  1: arch.SetTriple ("armv7-apple-" OSNAME);    return true;
+            case  2: arch.SetTriple ("armv6m-apple-" OSNAME);   return true;
+            case  3: arch.SetTriple ("armv6-apple-" OSNAME);    return true;
+            case  4: arch.SetTriple ("armv5-apple-" OSNAME);    return true;
+            case  5: arch.SetTriple ("armv4-apple-" OSNAME);    return true;
+            case  6: arch.SetTriple ("arm-apple-" OSNAME);      return true;
+            case  7: arch.SetTriple ("thumbv7k-apple-" OSNAME); return true;
+            case  8: arch.SetTriple ("thumbv7-apple-" OSNAME);  return true;
+            case  9: arch.SetTriple ("thumbv6m-apple-" OSNAME); return true;
+            case 10: arch.SetTriple ("thumbv6-apple-" OSNAME);  return true;
+            case 11: arch.SetTriple ("thumbv5-apple-" OSNAME);  return true;
+            case 12: arch.SetTriple ("thumbv4t-apple-" OSNAME); return true;
+            case 13: arch.SetTriple ("thumb-apple-" OSNAME);    return true;
             default: break;
         }
         break;
@@ -868,20 +881,20 @@ PlatformDarwin::ARMGetSupportedArchitect
     case ArchSpec::eCore_arm_armv7s:
         switch (idx)
         {
-            case  0: arch.SetTriple ("armv7s-apple-ios");   return true;
-            case  1: arch.SetTriple ("armv7-apple-ios");    return true;
-            case  2: arch.SetTriple ("armv6m-apple-ios");   return true;
-            case  3: arch.SetTriple ("armv6-apple-ios");    return true;
-            case  4: arch.SetTriple ("armv5-apple-ios");    return true;
-            case  5: arch.SetTriple ("armv4-apple-ios");    return true;
-            case  6: arch.SetTriple ("arm-apple-ios");      return true;
-            case  7: arch.SetTriple ("thumbv7s-apple-ios"); return true;
-            case  8: arch.SetTriple ("thumbv7-apple-ios");  return true;
-            case  9: arch.SetTriple ("thumbv6m-apple-ios"); return true;
-            case 10: arch.SetTriple ("thumbv6-apple-ios");  return true;
-            case 11: arch.SetTriple ("thumbv5-apple-ios");  return true;
-            case 12: arch.SetTriple ("thumbv4t-apple-ios"); return true;
-            case 13: arch.SetTriple ("thumb-apple-ios");    return true;
+            case  0: arch.SetTriple ("armv7s-apple-" OSNAME);   return true;
+            case  1: arch.SetTriple ("armv7-apple-" OSNAME);    return true;
+            case  2: arch.SetTriple ("armv6m-apple-" OSNAME);   return true;
+            case  3: arch.SetTriple ("armv6-apple-" OSNAME);    return true;
+            case  4: arch.SetTriple ("armv5-apple-" OSNAME);    return true;
+            case  5: arch.SetTriple ("armv4-apple-" OSNAME);    return true;
+            case  6: arch.SetTriple ("arm-apple-" OSNAME);      return true;
+            case  7: arch.SetTriple ("thumbv7s-apple-" OSNAME); return true;
+            case  8: arch.SetTriple ("thumbv7-apple-" OSNAME);  return true;
+            case  9: arch.SetTriple ("thumbv6m-apple-" OSNAME); return true;
+            case 10: arch.SetTriple ("thumbv6-apple-" OSNAME);  return true;
+            case 11: arch.SetTriple ("thumbv5-apple-" OSNAME);  return true;
+            case 12: arch.SetTriple ("thumbv4t-apple-" OSNAME); return true;
+            case 13: arch.SetTriple ("thumb-apple-" OSNAME);    return true;
             default: break;
         }
         break;
@@ -889,20 +902,20 @@ PlatformDarwin::ARMGetSupportedArchitect
     case ArchSpec::eCore_arm_armv7m:
         switch (idx)
         {
-            case  0: arch.SetTriple ("armv7m-apple-ios");   return true;
-            case  1: arch.SetTriple ("armv7-apple-ios");    return true;
-            case  2: arch.SetTriple ("armv6m-apple-ios");   return true;
-            case  3: arch.SetTriple ("armv6-apple-ios");    return true;
-            case  4: arch.SetTriple ("armv5-apple-ios");    return true;
-            case  5: arch.SetTriple ("armv4-apple-ios");    return true;
-            case  6: arch.SetTriple ("arm-apple-ios");      return true;
-            case  7: arch.SetTriple ("thumbv7m-apple-ios"); return true;
-            case  8: arch.SetTriple ("thumbv7-apple-ios");  return true;
-            case  9: arch.SetTriple ("thumbv6m-apple-ios"); return true;
-            case 10: arch.SetTriple ("thumbv6-apple-ios");  return true;
-            case 11: arch.SetTriple ("thumbv5-apple-ios");  return true;
-            case 12: arch.SetTriple ("thumbv4t-apple-ios"); return true;
-            case 13: arch.SetTriple ("thumb-apple-ios");    return true;
+            case  0: arch.SetTriple ("armv7m-apple-" OSNAME);   return true;
+            case  1: arch.SetTriple ("armv7-apple-" OSNAME);    return true;
+            case  2: arch.SetTriple ("armv6m-apple-" OSNAME);   return true;
+            case  3: arch.SetTriple ("armv6-apple-" OSNAME);    return true;
+            case  4: arch.SetTriple ("armv5-apple-" OSNAME);    return true;
+            case  5: arch.SetTriple ("armv4-apple-" OSNAME);    return true;
+            case  6: arch.SetTriple ("arm-apple-" OSNAME);      return true;
+            case  7: arch.SetTriple ("thumbv7m-apple-" OSNAME); return true;
+            case  8: arch.SetTriple ("thumbv7-apple-" OSNAME);  return true;
+            case  9: arch.SetTriple ("thumbv6m-apple-" OSNAME); return true;
+            case 10: arch.SetTriple ("thumbv6-apple-" OSNAME);  return true;
+            case 11: arch.SetTriple ("thumbv5-apple-" OSNAME);  return true;
+            case 12: arch.SetTriple ("thumbv4t-apple-" OSNAME); return true;
+            case 13: arch.SetTriple ("thumb-apple-" OSNAME);    return true;
             default: break;
         }
         break;
@@ -910,20 +923,20 @@ PlatformDarwin::ARMGetSupportedArchitect
     case ArchSpec::eCore_arm_armv7em:
         switch (idx)
         {
-            case  0: arch.SetTriple ("armv7em-apple-ios");  return true;
-            case  1: arch.SetTriple ("armv7-apple-ios");    return true;
-            case  2: arch.SetTriple ("armv6m-apple-ios");   return true;
-            case  3: arch.SetTriple ("armv6-apple-ios");    return true;
-            case  4: arch.SetTriple ("armv5-apple-ios");    return true;
-            case  5: arch.SetTriple ("armv4-apple-ios");    return true;
-            case  6: arch.SetTriple ("arm-apple-ios");      return true;
-            case  7: arch.SetTriple ("thumbv7em-apple-ios"); return true;
-            case  8: arch.SetTriple ("thumbv7-apple-ios");  return true;
-            case  9: arch.SetTriple ("thumbv6m-apple-ios"); return true;
-            case 10: arch.SetTriple ("thumbv6-apple-ios");  return true;
-            case 11: arch.SetTriple ("thumbv5-apple-ios");  return true;
-            case 12: arch.SetTriple ("thumbv4t-apple-ios"); return true;
-            case 13: arch.SetTriple ("thumb-apple-ios");    return true;
+            case  0: arch.SetTriple ("armv7em-apple-" OSNAME);  return true;
+            case  1: arch.SetTriple ("armv7-apple-" OSNAME);    return true;
+            case  2: arch.SetTriple ("armv6m-apple-" OSNAME);   return true;
+            case  3: arch.SetTriple ("armv6-apple-" OSNAME);    return true;
+            case  4: arch.SetTriple ("armv5-apple-" OSNAME);    return true;
+            case  5: arch.SetTriple ("armv4-apple-" OSNAME);    return true;
+            case  6: arch.SetTriple ("arm-apple-" OSNAME);      return true;
+            case  7: arch.SetTriple ("thumbv7em-apple-" OSNAME); return true;
+            case  8: arch.SetTriple ("thumbv7-apple-" OSNAME);  return true;
+            case  9: arch.SetTriple ("thumbv6m-apple-" OSNAME); return true;
+            case 10: arch.SetTriple ("thumbv6-apple-" OSNAME);  return true;
+            case 11: arch.SetTriple ("thumbv5-apple-" OSNAME);  return true;
+            case 12: arch.SetTriple ("thumbv4t-apple-" OSNAME); return true;
+            case 13: arch.SetTriple ("thumb-apple-" OSNAME);    return true;
             default: break;
         }
         break;
@@ -931,18 +944,18 @@ PlatformDarwin::ARMGetSupportedArchitect
     case ArchSpec::eCore_arm_armv7:
         switch (idx)
         {
-            case  0: arch.SetTriple ("armv7-apple-ios");    return true;
-            case  1: arch.SetTriple ("armv6m-apple-ios");   return true;
-            case  2: arch.SetTriple ("armv6-apple-ios");    return true;
-            case  3: arch.SetTriple ("armv5-apple-ios");    return true;
-            case  4: arch.SetTriple ("armv4-apple-ios");    return true;
-            case  5: arch.SetTriple ("arm-apple-ios");      return true;
-            case  6: arch.SetTriple ("thumbv7-apple-ios");  return true;
-            case  7: arch.SetTriple ("thumbv6m-apple-ios"); return true;
-            case  8: arch.SetTriple ("thumbv6-apple-ios");  return true;
-            case  9: arch.SetTriple ("thumbv5-apple-ios");  return true;
-            case 10: arch.SetTriple ("thumbv4t-apple-ios"); return true;
-            case 11: arch.SetTriple ("thumb-apple-ios");    return true;
+            case  0: arch.SetTriple ("armv7-apple-" OSNAME);    return true;
+            case  1: arch.SetTriple ("armv6m-apple-" OSNAME);   return true;
+            case  2: arch.SetTriple ("armv6-apple-" OSNAME);    return true;
+            case  3: arch.SetTriple ("armv5-apple-" OSNAME);    return true;
+            case  4: arch.SetTriple ("armv4-apple-" OSNAME);    return true;
+            case  5: arch.SetTriple ("arm-apple-" OSNAME);      return true;
+            case  6: arch.SetTriple ("thumbv7-apple-" OSNAME);  return true;
+            case  7: arch.SetTriple ("thumbv6m-apple-" OSNAME); return true;
+            case  8: arch.SetTriple ("thumbv6-apple-" OSNAME);  return true;
+            case  9: arch.SetTriple ("thumbv5-apple-" OSNAME);  return true;
+            case 10: arch.SetTriple ("thumbv4t-apple-" OSNAME); return true;
+            case 11: arch.SetTriple ("thumb-apple-" OSNAME);    return true;
             default: break;
         }
         break;
@@ -950,16 +963,16 @@ PlatformDarwin::ARMGetSupportedArchitect
     case ArchSpec::eCore_arm_armv6m:
         switch (idx)
         {
-            case 0: arch.SetTriple ("armv6m-apple-ios");   return true;
-            case 1: arch.SetTriple ("armv6-apple-ios");    return true;
-            case 2: arch.SetTriple ("armv5-apple-ios");    return true;
-            case 3: arch.SetTriple ("armv4-apple-ios");    return true;
-            case 4: arch.SetTriple ("arm-apple-ios");      return true;
-            case 5: arch.SetTriple ("thumbv6m-apple-ios"); return true;
-            case 6: arch.SetTriple ("thumbv6-apple-ios");  return true;
-            case 7: arch.SetTriple ("thumbv5-apple-ios");  return true;
-            case 8: arch.SetTriple ("thumbv4t-apple-ios"); return true;
-            case 9: arch.SetTriple ("thumb-apple-ios");    return true;
+            case 0: arch.SetTriple ("armv6m-apple-" OSNAME);   return true;
+            case 1: arch.SetTriple ("armv6-apple-" OSNAME);    return true;
+            case 2: arch.SetTriple ("armv5-apple-" OSNAME);    return true;
+            case 3: arch.SetTriple ("armv4-apple-" OSNAME);    return true;
+            case 4: arch.SetTriple ("arm-apple-" OSNAME);      return true;
+            case 5: arch.SetTriple ("thumbv6m-apple-" OSNAME); return true;
+            case 6: arch.SetTriple ("thumbv6-apple-" OSNAME);  return true;
+            case 7: arch.SetTriple ("thumbv5-apple-" OSNAME);  return true;
+            case 8: arch.SetTriple ("thumbv4t-apple-" OSNAME); return true;
+            case 9: arch.SetTriple ("thumb-apple-" OSNAME);    return true;
             default: break;
         }
         break;
@@ -967,14 +980,14 @@ PlatformDarwin::ARMGetSupportedArchitect
     case ArchSpec::eCore_arm_armv6:
         switch (idx)
         {
-            case 0: arch.SetTriple ("armv6-apple-ios");    return true;
-            case 1: arch.SetTriple ("armv5-apple-ios");    return true;
-            case 2: arch.SetTriple ("armv4-apple-ios");    return true;
-            case 3: arch.SetTriple ("arm-apple-ios");      return true;
-            case 4: arch.SetTriple ("thumbv6-apple-ios");  return true;
-            case 5: arch.SetTriple ("thumbv5-apple-ios");  return true;
-            case 6: arch.SetTriple ("thumbv4t-apple-ios"); return true;
-            case 7: arch.SetTriple ("thumb-apple-ios");    return true;
+            case 0: arch.SetTriple ("armv6-apple-" OSNAME);    return true;
+            case 1: arch.SetTriple ("armv5-apple-" OSNAME);    return true;
+            case 2: arch.SetTriple ("armv4-apple-" OSNAME);    return true;
+            case 3: arch.SetTriple ("arm-apple-" OSNAME);      return true;
+            case 4: arch.SetTriple ("thumbv6-apple-" OSNAME);  return true;
+            case 5: arch.SetTriple ("thumbv5-apple-" OSNAME);  return true;
+            case 6: arch.SetTriple ("thumbv4t-apple-" OSNAME); return true;
+            case 7: arch.SetTriple ("thumb-apple-" OSNAME);    return true;
             default: break;
         }
         break;
@@ -982,12 +995,12 @@ PlatformDarwin::ARMGetSupportedArchitect
     case ArchSpec::eCore_arm_armv5:
         switch (idx)
         {
-            case 0: arch.SetTriple ("armv5-apple-ios");    return true;
-            case 1: arch.SetTriple ("armv4-apple-ios");    return true;
-            case 2: arch.SetTriple ("arm-apple-ios");      return true;
-            case 3: arch.SetTriple ("thumbv5-apple-ios");  return true;
-            case 4: arch.SetTriple ("thumbv4t-apple-ios"); return true;
-            case 5: arch.SetTriple ("thumb-apple-ios");    return true;
+            case 0: arch.SetTriple ("armv5-apple-" OSNAME);    return true;
+            case 1: arch.SetTriple ("armv4-apple-" OSNAME);    return true;
+            case 2: arch.SetTriple ("arm-apple-" OSNAME);      return true;
+            case 3: arch.SetTriple ("thumbv5-apple-" OSNAME);  return true;
+            case 4: arch.SetTriple ("thumbv4t-apple-" OSNAME); return true;
+            case 5: arch.SetTriple ("thumb-apple-" OSNAME);    return true;
             default: break;
         }
         break;
@@ -995,10 +1008,10 @@ PlatformDarwin::ARMGetSupportedArchitect
     case ArchSpec::eCore_arm_armv4:
         switch (idx)
         {
-            case 0: arch.SetTriple ("armv4-apple-ios");    return true;
-            case 1: arch.SetTriple ("arm-apple-ios");      return true;
-            case 2: arch.SetTriple ("thumbv4t-apple-ios"); return true;
-            case 3: arch.SetTriple ("thumb-apple-ios");    return true;
+            case 0: arch.SetTriple ("armv4-apple-" OSNAME);    return true;
+            case 1: arch.SetTriple ("arm-apple-" OSNAME);      return true;
+            case 2: arch.SetTriple ("thumbv4t-apple-" OSNAME); return true;
+            case 3: arch.SetTriple ("thumb-apple-" OSNAME);    return true;
             default: break;
         }
         break;

Modified: lldb/trunk/source/Target/TargetList.cpp
URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/source/Target/TargetList.cpp?rev=253763&r1=253762&r2=253763&view=diff
==============================================================================
--- lldb/trunk/source/Target/TargetList.cpp (original)
+++ lldb/trunk/source/Target/TargetList.cpp Fri Nov 20 22:00:43 2015
@@ -245,7 +245,11 @@ TargetList::CreateTargetInternal (Debugg
                             }
                             
                             // Just find a platform that matches the architecture in the executable file
-                            platforms.push_back(Platform::GetPlatformForArchitecture(module_spec.GetArchitecture(), nullptr));
+                            PlatformSP fallback_platform_sp (Platform::GetPlatformForArchitecture(module_spec.GetArchitecture(), nullptr));
+                            if (fallback_platform_sp)
+                            {
+                                platforms.push_back(fallback_platform_sp);
+                            }
                         }
                     }
                     




More information about the lldb-commits mailing list