diff options
author | Greg Clayton <gclayton@apple.com> | 2014-08-12 21:38:59 +0000 |
---|---|---|
committer | Greg Clayton <gclayton@apple.com> | 2014-08-12 21:38:59 +0000 |
commit | bc766681429053cccb147f180ef2fb17cce1ca5d (patch) | |
tree | edee0205d8eb55467c60178585a816f8e7d2fc9c /lldb/source | |
parent | d7349439d5f81a4292aa7dff0838d1dbda2ce7ca (diff) | |
download | bcm5719-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.cpp | 4 |
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: |