summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJason Molenda <jmolenda@apple.com>2011-12-09 07:50:50 +0000
committerJason Molenda <jmolenda@apple.com>2011-12-09 07:50:50 +0000
commitd74db47a41ae4f92f0d22a5a930d87d3fade91f8 (patch)
tree78faa4cf053efc2cea8dd51a2ed3d76ebbe65e65
parent941aae0e9d5f360f8aa7d3382578e23ebfff8df7 (diff)
downloadbcm5719-llvm-d74db47a41ae4f92f0d22a5a930d87d3fade91f8.tar.gz
bcm5719-llvm-d74db47a41ae4f92f0d22a5a930d87d3fade91f8.zip
Move the ARM specific arch picker from PlatformRemoteiOS.cpp to
PlatformDarwin.cpp -- call it from both PlatformRemoteiOS.cpp and the native process PlatformDarwin.cpp when running on an arm system. Bump lldb version number to 94. llvm-svn: 146249
-rw-r--r--lldb/lldb.xcodeproj/project.pbxproj30
-rw-r--r--lldb/resources/LLDB-Info.plist2
-rw-r--r--lldb/source/Plugins/Platform/MacOSX/PlatformDarwin.cpp111
-rw-r--r--lldb/source/Plugins/Platform/MacOSX/PlatformDarwin.h2
-rw-r--r--lldb/source/Plugins/Platform/MacOSX/PlatformMacOSX.cpp5
-rw-r--r--lldb/source/Plugins/Platform/MacOSX/PlatformRemoteiOS.cpp103
6 files changed, 134 insertions, 119 deletions
diff --git a/lldb/lldb.xcodeproj/project.pbxproj b/lldb/lldb.xcodeproj/project.pbxproj
index f253f55cdfd..ea98fce3986 100644
--- a/lldb/lldb.xcodeproj/project.pbxproj
+++ b/lldb/lldb.xcodeproj/project.pbxproj
@@ -3736,9 +3736,9 @@
buildSettings = {
ALWAYS_SEARCH_USER_PATHS = NO;
COPY_PHASE_STRIP = NO;
- CURRENT_PROJECT_VERSION = 93;
+ CURRENT_PROJECT_VERSION = 94;
DYLIB_COMPATIBILITY_VERSION = 1;
- DYLIB_CURRENT_VERSION = 93;
+ DYLIB_CURRENT_VERSION = 94;
EXPORTED_SYMBOLS_FILE = "resources/lldb-framework-exports";
FRAMEWORK_SEARCH_PATHS = (
"$(inherited)",
@@ -3797,10 +3797,10 @@
buildSettings = {
ALWAYS_SEARCH_USER_PATHS = NO;
COPY_PHASE_STRIP = NO;
- CURRENT_PROJECT_VERSION = 93;
+ CURRENT_PROJECT_VERSION = 94;
DEAD_CODE_STRIPPING = YES;
DYLIB_COMPATIBILITY_VERSION = 1;
- DYLIB_CURRENT_VERSION = 93;
+ DYLIB_CURRENT_VERSION = 94;
EXPORTED_SYMBOLS_FILE = "resources/lldb-framework-exports";
FRAMEWORK_SEARCH_PATHS = (
"$(inherited)",
@@ -3857,8 +3857,8 @@
isa = XCBuildConfiguration;
buildSettings = {
COPY_PHASE_STRIP = NO;
- CURRENT_PROJECT_VERSION = 93;
- DYLIB_CURRENT_VERSION = 93;
+ CURRENT_PROJECT_VERSION = 94;
+ DYLIB_CURRENT_VERSION = 94;
EXECUTABLE_EXTENSION = a;
FRAMEWORK_SEARCH_PATHS = (
"$(inherited)",
@@ -3887,8 +3887,8 @@
isa = XCBuildConfiguration;
buildSettings = {
COPY_PHASE_STRIP = NO;
- CURRENT_PROJECT_VERSION = 93;
- DYLIB_CURRENT_VERSION = 93;
+ CURRENT_PROJECT_VERSION = 94;
+ DYLIB_CURRENT_VERSION = 94;
EXECUTABLE_EXTENSION = a;
FRAMEWORK_SEARCH_PATHS = (
"$(inherited)",
@@ -3917,8 +3917,8 @@
isa = XCBuildConfiguration;
buildSettings = {
COPY_PHASE_STRIP = NO;
- CURRENT_PROJECT_VERSION = 93;
- DYLIB_CURRENT_VERSION = 93;
+ CURRENT_PROJECT_VERSION = 94;
+ DYLIB_CURRENT_VERSION = 94;
EXECUTABLE_EXTENSION = a;
FRAMEWORK_SEARCH_PATHS = (
"$(inherited)",
@@ -3995,7 +3995,7 @@
isa = XCBuildConfiguration;
buildSettings = {
COPY_PHASE_STRIP = YES;
- CURRENT_PROJECT_VERSION = 93;
+ CURRENT_PROJECT_VERSION = 94;
FRAMEWORK_SEARCH_PATHS = (
"$(inherited)",
"\"$(SYSTEM_LIBRARY_DIR)/PrivateFrameworks\"",
@@ -4025,10 +4025,10 @@
buildSettings = {
ALWAYS_SEARCH_USER_PATHS = NO;
COPY_PHASE_STRIP = YES;
- CURRENT_PROJECT_VERSION = 93;
+ CURRENT_PROJECT_VERSION = 94;
DEAD_CODE_STRIPPING = YES;
DYLIB_COMPATIBILITY_VERSION = 1;
- DYLIB_CURRENT_VERSION = 93;
+ DYLIB_CURRENT_VERSION = 94;
EXPORTED_SYMBOLS_FILE = "resources/lldb-framework-exports";
FRAMEWORK_SEARCH_PATHS = (
"$(inherited)",
@@ -4272,7 +4272,7 @@
isa = XCBuildConfiguration;
buildSettings = {
COPY_PHASE_STRIP = NO;
- CURRENT_PROJECT_VERSION = 93;
+ CURRENT_PROJECT_VERSION = 94;
FRAMEWORK_SEARCH_PATHS = (
"$(inherited)",
"\"$(SYSTEM_LIBRARY_DIR)/PrivateFrameworks\"",
@@ -4303,7 +4303,7 @@
isa = XCBuildConfiguration;
buildSettings = {
COPY_PHASE_STRIP = YES;
- CURRENT_PROJECT_VERSION = 93;
+ CURRENT_PROJECT_VERSION = 94;
FRAMEWORK_SEARCH_PATHS = (
"$(inherited)",
"\"$(SYSTEM_LIBRARY_DIR)/PrivateFrameworks\"",
diff --git a/lldb/resources/LLDB-Info.plist b/lldb/resources/LLDB-Info.plist
index 836f13a6435..bc98f5caafe 100644
--- a/lldb/resources/LLDB-Info.plist
+++ b/lldb/resources/LLDB-Info.plist
@@ -17,7 +17,7 @@
<key>CFBundleSignature</key>
<string>????</string>
<key>CFBundleVersion</key>
- <string>93</string>
+ <string>94</string>
<key>CFBundleName</key>
<string>${EXECUTABLE_NAME}</string>
</dict>
diff --git a/lldb/source/Plugins/Platform/MacOSX/PlatformDarwin.cpp b/lldb/source/Plugins/Platform/MacOSX/PlatformDarwin.cpp
index 7e2d3cdffe2..8e139690964 100644
--- a/lldb/source/Plugins/Platform/MacOSX/PlatformDarwin.cpp
+++ b/lldb/source/Plugins/Platform/MacOSX/PlatformDarwin.cpp
@@ -501,3 +501,114 @@ PlatformDarwin::ModuleIsExcludedForNonModuleSpecificSearches (lldb_private::Targ
else
return false;
}
+
+
+// The architecture selection rules for arm processors
+// These cpu subtypes have distinct names (e.g. armv7f) but armv7 binaries run fine on an armv7f processor.
+
+bool
+PlatformDarwin::ARMGetSupportedArchitectureAtIndex (uint32_t idx, ArchSpec &arch)
+{
+ ArchSpec system_arch (GetSystemArchitecture());
+ const ArchSpec::Core system_core = system_arch.GetCore();
+ switch (system_core)
+ {
+ default:
+ switch (idx)
+ {
+ case 0: arch.SetTriple ("armv7-apple-darwin", NULL); return true;
+ case 1: arch.SetTriple ("armv7f-apple-darwin", NULL); return true;
+ case 2: arch.SetTriple ("armv7k-apple-darwin", NULL); return true;
+ case 3: arch.SetTriple ("armv7s-apple-darwin", NULL); return true;
+ case 4: arch.SetTriple ("armv6-apple-darwin", NULL); return true;
+ case 5: arch.SetTriple ("armv5-apple-darwin", NULL); return true;
+ case 6: arch.SetTriple ("armv4-apple-darwin", NULL); return true;
+ case 7: arch.SetTriple ("arm-apple-darwin", NULL); return true;
+ default: break;
+ }
+ break;
+
+ case ArchSpec::eCore_arm_armv7f:
+ switch (idx)
+ {
+ case 0: arch.SetTriple ("armv7f-apple-darwin", NULL); return true;
+ case 1: arch.SetTriple ("armv7-apple-darwin", NULL); return true;
+ case 2: arch.SetTriple ("armv6-apple-darwin", NULL); return true;
+ case 3: arch.SetTriple ("armv5-apple-darwin", NULL); return true;
+ case 4: arch.SetTriple ("armv4-apple-darwin", NULL); return true;
+ case 5: arch.SetTriple ("arm-apple-darwin", NULL); return true;
+ default: break;
+ }
+ break;
+
+ case ArchSpec::eCore_arm_armv7k:
+ switch (idx)
+ {
+ case 0: arch.SetTriple ("armv7k-apple-darwin", NULL); return true;
+ case 1: arch.SetTriple ("armv7-apple-darwin", NULL); return true;
+ case 2: arch.SetTriple ("armv6-apple-darwin", NULL); return true;
+ case 3: arch.SetTriple ("armv5-apple-darwin", NULL); return true;
+ case 4: arch.SetTriple ("armv4-apple-darwin", NULL); return true;
+ case 5: arch.SetTriple ("arm-apple-darwin", NULL); return true;
+ default: break;
+ }
+ break;
+
+ case ArchSpec::eCore_arm_armv7s:
+ switch (idx)
+ {
+ case 0: arch.SetTriple ("armv7s-apple-darwin", NULL); return true;
+ case 1: arch.SetTriple ("armv7-apple-darwin", NULL); return true;
+ case 2: arch.SetTriple ("armv6-apple-darwin", NULL); return true;
+ case 3: arch.SetTriple ("armv5-apple-darwin", NULL); return true;
+ case 4: arch.SetTriple ("armv4-apple-darwin", NULL); return true;
+ case 5: arch.SetTriple ("arm-apple-darwin", NULL); return true;
+ default: break;
+ }
+ break;
+
+ case ArchSpec::eCore_arm_armv7:
+ switch (idx)
+ {
+ case 0: arch.SetTriple ("armv7-apple-darwin", NULL); return true;
+ case 1: arch.SetTriple ("armv6-apple-darwin", NULL); return true;
+ case 2: arch.SetTriple ("armv5-apple-darwin", NULL); return true;
+ case 3: arch.SetTriple ("armv4-apple-darwin", NULL); return true;
+ case 4: arch.SetTriple ("arm-apple-darwin", NULL); return true;
+ default: break;
+ }
+ break;
+
+ case ArchSpec::eCore_arm_armv6:
+ switch (idx)
+ {
+ case 0: arch.SetTriple ("armv6-apple-darwin", NULL); return true;
+ case 1: arch.SetTriple ("armv5-apple-darwin", NULL); return true;
+ case 2: arch.SetTriple ("armv4-apple-darwin", NULL); return true;
+ case 3: arch.SetTriple ("arm-apple-darwin", NULL); return true;
+ default: break;
+ }
+ break;
+
+ case ArchSpec::eCore_arm_armv5:
+ switch (idx)
+ {
+ case 0: arch.SetTriple ("armv5-apple-darwin", NULL); return true;
+ case 1: arch.SetTriple ("armv4-apple-darwin", NULL); return true;
+ case 2: arch.SetTriple ("arm-apple-darwin", NULL); return true;
+ default: break;
+ }
+ break;
+
+ case ArchSpec::eCore_arm_armv4:
+ switch (idx)
+ {
+ case 0: arch.SetTriple ("armv4-apple-darwin", NULL); return true;
+ case 1: arch.SetTriple ("arm-apple-darwin", NULL); return true;
+ default: break;
+ }
+ break;
+ }
+ arch.Clear();
+ return false;
+}
diff --git a/lldb/source/Plugins/Platform/MacOSX/PlatformDarwin.h b/lldb/source/Plugins/Platform/MacOSX/PlatformDarwin.h
index 5ed533da3a3..0052a8efde4 100644
--- a/lldb/source/Plugins/Platform/MacOSX/PlatformDarwin.h
+++ b/lldb/source/Plugins/Platform/MacOSX/PlatformDarwin.h
@@ -88,6 +88,8 @@ public:
virtual bool
ModuleIsExcludedForNonModuleSpecificSearches (lldb_private::Target &target, const lldb::ModuleSP &module_sp);
+ bool ARMGetSupportedArchitectureAtIndex (uint32_t idx, lldb_private::ArchSpec &arch);
+
protected:
lldb::PlatformSP m_remote_platform_sp; // Allow multiple ways to connect to a remote darwin OS
diff --git a/lldb/source/Plugins/Platform/MacOSX/PlatformMacOSX.cpp b/lldb/source/Plugins/Platform/MacOSX/PlatformMacOSX.cpp
index 02d662bc2bc..3a0e036f055 100644
--- a/lldb/source/Plugins/Platform/MacOSX/PlatformMacOSX.cpp
+++ b/lldb/source/Plugins/Platform/MacOSX/PlatformMacOSX.cpp
@@ -178,6 +178,10 @@ PlatformMacOSX::GetSharedModule (const FileSpec &platform_file,
bool
PlatformMacOSX::GetSupportedArchitectureAtIndex (uint32_t idx, ArchSpec &arch)
{
+#if defined (__arm__)
+ return ARMGetSupportedArchitectureAtIndex (idx, arch);
+#endif
+
if (idx == 0)
{
arch = Host::GetArchitecture (Host::eSystemDefaultArchitecture);
@@ -199,4 +203,3 @@ PlatformMacOSX::GetSupportedArchitectureAtIndex (uint32_t idx, ArchSpec &arch)
return false;
}
-
diff --git a/lldb/source/Plugins/Platform/MacOSX/PlatformRemoteiOS.cpp b/lldb/source/Plugins/Platform/MacOSX/PlatformRemoteiOS.cpp
index 2b83156e759..62d85451249 100644
--- a/lldb/source/Plugins/Platform/MacOSX/PlatformRemoteiOS.cpp
+++ b/lldb/source/Plugins/Platform/MacOSX/PlatformRemoteiOS.cpp
@@ -485,106 +485,5 @@ PlatformRemoteiOS::GetProcessInfo (lldb::pid_t pid, ProcessInstanceInfo &process
bool
PlatformRemoteiOS::GetSupportedArchitectureAtIndex (uint32_t idx, ArchSpec &arch)
{
- ArchSpec system_arch (GetSystemArchitecture());
- const ArchSpec::Core system_core = system_arch.GetCore();
- switch (system_core)
- {
- default:
- switch (idx)
- {
- case 0: arch.SetTriple ("armv7-apple-darwin", NULL); return true;
- case 1: arch.SetTriple ("armv7f-apple-darwin", NULL); return true;
- case 2: arch.SetTriple ("armv7k-apple-darwin", NULL); return true;
- case 3: arch.SetTriple ("armv7s-apple-darwin", NULL); return true;
- case 4: arch.SetTriple ("armv6-apple-darwin", NULL); return true;
- case 5: arch.SetTriple ("armv5-apple-darwin", NULL); return true;
- case 6: arch.SetTriple ("armv4-apple-darwin", NULL); return true;
- case 7: arch.SetTriple ("arm-apple-darwin", NULL); return true;
- default: break;
- }
- break;
-
- case ArchSpec::eCore_arm_armv7f:
- switch (idx)
- {
- case 0: arch.SetTriple ("armv7f-apple-darwin", NULL); return true;
- case 1: arch.SetTriple ("armv7-apple-darwin", NULL); return true;
- case 2: arch.SetTriple ("armv6-apple-darwin", NULL); return true;
- case 3: arch.SetTriple ("armv5-apple-darwin", NULL); return true;
- case 4: arch.SetTriple ("armv4-apple-darwin", NULL); return true;
- case 5: arch.SetTriple ("arm-apple-darwin", NULL); return true;
- default: break;
- }
- break;
-
- case ArchSpec::eCore_arm_armv7k:
- switch (idx)
- {
- case 0: arch.SetTriple ("armv7k-apple-darwin", NULL); return true;
- case 1: arch.SetTriple ("armv7-apple-darwin", NULL); return true;
- case 2: arch.SetTriple ("armv6-apple-darwin", NULL); return true;
- case 3: arch.SetTriple ("armv5-apple-darwin", NULL); return true;
- case 4: arch.SetTriple ("armv4-apple-darwin", NULL); return true;
- case 5: arch.SetTriple ("arm-apple-darwin", NULL); return true;
- default: break;
- }
- break;
-
- case ArchSpec::eCore_arm_armv7s:
- switch (idx)
- {
- case 0: arch.SetTriple ("armv7s-apple-darwin", NULL); return true;
- case 1: arch.SetTriple ("armv7-apple-darwin", NULL); return true;
- case 2: arch.SetTriple ("armv6-apple-darwin", NULL); return true;
- case 3: arch.SetTriple ("armv5-apple-darwin", NULL); return true;
- case 4: arch.SetTriple ("armv4-apple-darwin", NULL); return true;
- case 5: arch.SetTriple ("arm-apple-darwin", NULL); return true;
- default: break;
- }
- break;
-
- case ArchSpec::eCore_arm_armv7:
- switch (idx)
- {
- case 0: arch.SetTriple ("armv7-apple-darwin", NULL); return true;
- case 1: arch.SetTriple ("armv6-apple-darwin", NULL); return true;
- case 2: arch.SetTriple ("armv5-apple-darwin", NULL); return true;
- case 3: arch.SetTriple ("armv4-apple-darwin", NULL); return true;
- case 4: arch.SetTriple ("arm-apple-darwin", NULL); return true;
- default: break;
- }
- break;
-
- case ArchSpec::eCore_arm_armv6:
- switch (idx)
- {
- case 0: arch.SetTriple ("armv6-apple-darwin", NULL); return true;
- case 1: arch.SetTriple ("armv5-apple-darwin", NULL); return true;
- case 2: arch.SetTriple ("armv4-apple-darwin", NULL); return true;
- case 3: arch.SetTriple ("arm-apple-darwin", NULL); return true;
- default: break;
- }
- break;
-
- case ArchSpec::eCore_arm_armv5:
- switch (idx)
- {
- case 0: arch.SetTriple ("armv5-apple-darwin", NULL); return true;
- case 1: arch.SetTriple ("armv4-apple-darwin", NULL); return true;
- case 2: arch.SetTriple ("arm-apple-darwin", NULL); return true;
- default: break;
- }
- break;
-
- case ArchSpec::eCore_arm_armv4:
- switch (idx)
- {
- case 0: arch.SetTriple ("armv4-apple-darwin", NULL); return true;
- case 1: arch.SetTriple ("arm-apple-darwin", NULL); return true;
- default: break;
- }
- break;
- }
- arch.Clear();
- return false;
+ return ARMGetSupportedArchitectureAtIndex (idx, arch);
}
OpenPOWER on IntegriCloud