summaryrefslogtreecommitdiffstats
path: root/lldb/source
diff options
context:
space:
mode:
authorGreg Clayton <gclayton@apple.com>2014-08-12 21:38:59 +0000
committerGreg Clayton <gclayton@apple.com>2014-08-12 21:38:59 +0000
commitbc766681429053cccb147f180ef2fb17cce1ca5d (patch)
treeedee0205d8eb55467c60178585a816f8e7d2fc9c /lldb/source
parentd7349439d5f81a4292aa7dff0838d1dbda2ce7ca (diff)
downloadbcm5719-llvm-bc766681429053cccb147f180ef2fb17cce1ca5d.tar.gz
bcm5719-llvm-bc766681429053cccb147f180ef2fb17cce1ca5d.zip
Fixed launching in shell on haswell enabled Macs to work more than once when you do:
% lldb -x /bin/ls (lldb) r (lldb) r Prior to this fix the first time it would run /usr/bin/arch with "-arch x86_64" the first time and succeed, and fail the second when the target had updated its architecture to x86_64h. We can't specify x86_64h to /usr/bin/arch, it doesn't handle it. Also fixed it so /usr/bin/arch is only used for Apple triples. <rdar://problem/17951312> llvm-svn: 215475
Diffstat (limited to 'lldb/source')
-rw-r--r--lldb/source/Target/ProcessLaunchInfo.cpp4
1 files changed, 3 insertions, 1 deletions
diff --git a/lldb/source/Target/ProcessLaunchInfo.cpp b/lldb/source/Target/ProcessLaunchInfo.cpp
index 9d06c96ed1a..84baee861ab 100644
--- a/lldb/source/Target/ProcessLaunchInfo.cpp
+++ b/lldb/source/Target/ProcessLaunchInfo.cpp
@@ -438,7 +438,9 @@ ProcessLaunchInfo::ConvertArgumentsForLaunchingInShell (Error &error,
shell_command.PutCString ("exec");
// Only Apple supports /usr/bin/arch being able to specify the architecture
- if (GetArchitecture().IsValid())
+ if (GetArchitecture().IsValid() && // Valid architecture
+ GetArchitecture().GetTriple().getVendor() == llvm::Triple::Apple && // Apple only
+ GetArchitecture().GetCore() != ArchSpec::eCore_x86_64_x86_64h) // Don't do this for x86_64h
{
shell_command.Printf(" /usr/bin/arch -arch %s", GetArchitecture().GetArchitectureName());
// Set the resume count to 2:
OpenPOWER on IntegriCloud