<html xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" xmlns="http://www.w3.org/TR/REC-html40"><head><meta http-equiv=Content-Type content="text/html; charset=utf-8"><meta name=Generator content="Microsoft Word 15 (filtered medium)"><style><!--
/* Font Definitions */
@font-face
        {font-family:"Cambria Math";
        panose-1:2 4 5 3 5 4 6 3 2 4;}
@font-face
        {font-family:Calibri;
        panose-1:2 15 5 2 2 2 4 3 2 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0in;
        margin-bottom:.0001pt;
        font-size:12.0pt;
        font-family:"Times New Roman",serif;}
a:link, span.MsoHyperlink
        {mso-style-priority:99;
        color:blue;
        text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
        {mso-style-priority:99;
        color:purple;
        text-decoration:underline;}
p
        {mso-style-priority:99;
        mso-margin-top-alt:auto;
        margin-right:0in;
        mso-margin-bottom-alt:auto;
        margin-left:0in;
        font-size:12.0pt;
        font-family:"Times New Roman",serif;}
span.EmailStyle18
        {mso-style-type:personal-reply;
        font-family:"Calibri",sans-serif;
        color:#1F497D;}
.MsoChpDefault
        {mso-style-type:export-only;
        font-family:"Calibri",sans-serif;}
@page WordSection1
        {size:8.5in 11.0in;
        margin:1.0in 1.0in 1.0in 1.0in;}
div.WordSection1
        {page:WordSection1;}
--></style><!--[if gte mso 9]><xml>
<o:shapedefaults v:ext="edit" spidmax="1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext="edit">
<o:idmap v:ext="edit" data="1" />
</o:shapelayout></xml><![endif]--></head><body lang=EN-US link=blue vlink=purple><div class=WordSection1><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D'>I’m seeing the same issue. On the server side, I get:<o:p></o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D'><o:p> </o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D'>Launched '/local/scratch/ted/plat/bin/lldb-server' as process 1986...<o:p></o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D'><o:p> </o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D'>Some tests are running fine; some are failing in this manner.<o:p></o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D'><o:p> </o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D'>--<o:p></o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D'>Qualcomm Innovation Center, Inc.<o:p></o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D'>The Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum, a Linux Foundation Collaborative Project<o:p></o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D'><o:p> </o:p></span></p><div style='border:none;border-left:solid blue 1.5pt;padding:0in 0in 0in 4.0pt'><div><div style='border:none;border-top:solid #E1E1E1 1.0pt;padding:3.0pt 0in 0in 0in'><p class=MsoNormal><b><span style='font-size:11.0pt;font-family:"Calibri",sans-serif'>From:</span></b><span style='font-size:11.0pt;font-family:"Calibri",sans-serif'> Vince Harron [mailto:vharron@google.com] <br><b>Sent:</b> Thursday, March 26, 2015 11:58 AM<br><b>To:</b> Ted Woodward; lldb-dev@cs.uiuc.edu<br><b>Subject:</b> Re: FW: [lldb-dev] Problems selecting correct Platform<o:p></o:p></span></p></div></div><p class=MsoNormal><o:p> </o:p></p><div><div><p class=MsoNormal>+lldb-dev<o:p></o:p></p></div><div><p class=MsoNormal><o:p> </o:p></p></div><div><div><div><p class=MsoNormal>I've just tried running the Linux remote tests again and I hit some problems.<o:p></o:p></p></div><div><p class=MsoNormal><o:p> </o:p></p></div><div><p class=MsoNormal>"connect to debug monitor on port NNN failed"<o:p></o:p></p></div><div><p class=MsoNormal><o:p> </o:p></p></div><div><p class=MsoNormal>We will look into it soon.<o:p></o:p></p></div><div><p class=MsoNormal><o:p> </o:p></p></div><p class=MsoNormal>We've never tried it on Ubuntu 12.04 AFAIK.  One problem with 12.04 could be causing all of those failures.<o:p></o:p></p><div><p class=MsoNormal><o:p> </o:p></p></div><div><p class=MsoNormal>Sincerely,<o:p></o:p></p></div><div><p class=MsoNormal><o:p> </o:p></p></div><div><p class=MsoNormal>Vince<o:p></o:p></p></div></div></div><div><p class=MsoNormal><o:p> </o:p></p></div></div><div><p class=MsoNormal><o:p> </o:p></p><div><p class=MsoNormal>On Thu, Mar 26, 2015 at 7:41 AM, Ted Woodward <<a href="mailto:ted.woodward@codeaurora.org" target="_blank">ted.woodward@codeaurora.org</a>> wrote:<o:p></o:p></p><blockquote style='border:none;border-left:solid #CCCCCC 1.0pt;padding:0in 0in 0in 6.0pt;margin-left:4.8pt;margin-right:0in'><div><div><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'><span style='font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D'>Hi Vince,</span><o:p></o:p></p><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'><span style='font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D'> </span><o:p></o:p></p><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'><span style='font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D'>I build top of tree from a couple days ago on Ubuntu 12, then ran the tests normally and got 4 failures. I ran the remote tests using the instructions below, and got 65 failures out of 360 tests, with lldb-server in platform mode on another Ubuntu 12 machine.</span><o:p></o:p></p><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'><span style='font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D'> </span><o:p></o:p></p><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'><span style='font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D'>I’m trying to establish a baseline before making my changes; are that many failures expected?</span><o:p></o:p></p><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'><span style='font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D'> </span><o:p></o:p></p><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'><span style='font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D'>Ted</span><o:p></o:p></p><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'><span style='font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D'> </span><o:p></o:p></p><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'><span style='font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D'>--</span><o:p></o:p></p><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'><span style='font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D'>Qualcomm Innovation Center, Inc.</span><o:p></o:p></p><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'><span style='font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D'>The Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum, a Linux Foundation Collaborative Project</span><o:p></o:p></p><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'><span style='font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D'> </span><o:p></o:p></p><div style='border:none;border-left:solid blue 1.5pt;padding:0in 0in 0in 4.0pt'><div><div style='border:none;border-top:solid #E1E1E1 1.0pt;padding:3.0pt 0in 0in 0in'><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'><b><span style='font-size:11.0pt;font-family:"Calibri",sans-serif'>From:</span></b><span style='font-size:11.0pt;font-family:"Calibri",sans-serif'> Vince Harron [mailto:<a href="mailto:vharron@google.com" target="_blank">vharron@google.com</a>] <br><b>Sent:</b> Tuesday, March 24, 2015 12:54 PM</span><o:p></o:p></p><div><div><p class=MsoNormal><br><b>To:</b> Ted Woodward<br><b>Subject:</b> Re: FW: [lldb-dev] Problems selecting correct Platform<o:p></o:p></p></div></div></div></div><div><div><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'> <o:p></o:p></p><div><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'>It's been on my todo list for a long time to document this.  I've made some edits in this email, please email if you hit any problems.<o:p></o:p></p><div><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'> <o:p></o:p></p></div><div><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'>(We run cmake ../../llvm ... in "$TARGETIP/build/host" folder)<o:p></o:p></p></div><div><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'> <o:p></o:p></p></div><div><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'>host1$ TARGETIP=192.168.100.132<o:p></o:p></p></div><div><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'>host1$ cd $ROOT_DIR/build/host<o:p></o:p></p></div><div><div><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'>host1$ rsync -hav bin/lldb-server* $TARGETIP:host/bin/<o:p></o:p></p></div><div><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'>host1$ rsync -havL lib/python2.7 $TARGETIP:host/lib/<o:p></o:p></p></div><div><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'>host2$ $ROOT_DIR/build/bin/lldb-server platform --listen *:5432 --stay-alive -c "log enable -f /tmp/plat.log gdb-remote all"<o:p></o:p></p></div></div><div><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'> <o:p></o:p></p></div><div><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'>host1$ cd $ROOT_DIR/llvm/tools/lldb/test<o:p></o:p></p></div><div><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'>host1$ DOTEST_OPTS="--executable $ROOT_DIR/build/host/bin/lldb -A x86_64 -C clang-3.5 -s $ROOT_DIR/build/host/lldb-test-traces -u CXXFLAGS -u CFLAGS"<o:p></o:p></p></div><div><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'>(these next lines are what enable remote test suite)<o:p></o:p></p></div><div><div><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'>host1$ export LLDB_TEST_THREADS=1<o:p></o:p></p></div><div><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'>host1$ export DOTEST_OPTS="$DOTEST_OPTS --platform-name remote-linux --platform-url connect://$TARGETIP:5432 --platform-working-dir /tmp"<o:p></o:p></p></div><div><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'>host1$ ./dosep.py --options "$DOTEST_OPTS"<o:p></o:p></p></div></div><div><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'> <o:p></o:p></p></div><div><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'> <o:p></o:p></p></div></div><div><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'> <o:p></o:p></p><div><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'>On Tue, Mar 24, 2015 at 9:52 AM, Ted Woodward <<a href="mailto:ted.woodward@codeaurora.org" target="_blank">ted.woodward@codeaurora.org</a>> wrote:<o:p></o:p></p><blockquote style='border:none;border-left:solid #CCCCCC 1.0pt;padding:0in 0in 0in 6.0pt;margin-left:4.8pt;margin-top:5.0pt;margin-right:0in;margin-bottom:5.0pt'><div><div><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'><span style='font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D'>I want to run linux->remote linux test; how do I do that?</span><o:p></o:p></p><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'><span style='font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D'> </span><o:p></o:p></p><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'><span style='font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D'>--</span><o:p></o:p></p><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'><span style='font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D'>Qualcomm Innovation Center, Inc.</span><o:p></o:p></p><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'><span style='font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D'>The Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum, a Linux Foundation Collaborative Project</span><o:p></o:p></p><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'><span style='font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D'> </span><o:p></o:p></p><div style='border:none;border-left:solid blue 1.5pt;padding:0in 0in 0in 4.0pt'><div><div style='border:none;border-top:solid #E1E1E1 1.0pt;padding:3.0pt 0in 0in 0in'><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'><b><span style='font-size:11.0pt;font-family:"Calibri",sans-serif'>From:</span></b><span style='font-size:11.0pt;font-family:"Calibri",sans-serif'> Vince Harron [mailto:<a href="mailto:vharron@google.com" target="_blank">vharron@google.com</a>] <br><b>Sent:</b> Monday, March 23, 2015 6:00 PM<br><b>To:</b> Ted Woodward<br><b>Subject:</b> Re: FW: [lldb-dev] Problems selecting correct Platform</span><o:p></o:p></p></div></div><div><div><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'> <o:p></o:p></p><p>Hi Ted,<o:p></o:p></p><p>I'm going to be busy with non-LLDB stuff this week.  So I won't have time to give this question the attention it deserves.<o:p></o:p></p><p>If you make this change and we can still run the tests suite cleanly Linux->remote/local Linux, I think it's fine.  But I reserve the right to complain later.  :)<o:p></o:p></p><div><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'>On Mar 23, 2015 3:46 PM, "Ted Woodward" <<a href="mailto:ted.woodward@codeaurora.org" target="_blank">ted.woodward@codeaurora.org</a>> wrote:<o:p></o:p></p><blockquote style='border:none;border-left:solid #CCCCCC 1.0pt;padding:0in 0in 0in 6.0pt;margin-left:4.8pt;margin-top:5.0pt;margin-right:0in;margin-bottom:5.0pt'><p class=MsoNormal style='mso-margin-top-alt:auto;margin-bottom:12.0pt'><br>Hi Vince,<br><br>I'm trying to get LLDB on Windows to load a Linux binary and choose the<br>remote Linux Platform, but r226712, which gets the remote-linux platform<br>able to run processes, is causing some trouble.<br><br>Specifically, the call to debugger.GetTargetList().CreateTarget() was<br>changed to call the version of CreateTarget() that takes an ArchSpec instead<br>of a triple. The version that takes the triple will go through all the<br>platforms looking for one that matches the triple, then call the version<br>that takes an ArchSpec. The version that takes an ArchSpec will only use the<br>current platform.<br><br>I'd like to change this back to the original implementation; would that be a<br>problem?<br><br>Ted<br><br>-----Original Message-----<br>From: <a href="mailto:lldb-dev-bounces@cs.uiuc.edu" target="_blank">lldb-dev-bounces@cs.uiuc.edu</a> [mailto:<a href="mailto:lldb-dev-bounces@cs.uiuc.edu" target="_blank">lldb-dev-bounces@cs.uiuc.edu</a>] On<br>Behalf Of Ted Woodward<br>Sent: Thursday, March 19, 2015 5:53 PM<br>To: 'Greg Clayton'; 'Vince Harron'<br>Cc: <a href="mailto:lldb-dev@cs.uiuc.edu" target="_blank">lldb-dev@cs.uiuc.edu</a><br>Subject: Re: [lldb-dev] Problems selecting correct Platform<br><br><br><br><br>> -----Original Message-----<br>> From: Greg Clayton [mailto:<a href="mailto:gclayton@apple.com" target="_blank">gclayton@apple.com</a>]<br>> Sent: Thursday, March 19, 2015 4:45 PM<br>><br>> > On Mar 19, 2015, at 12:15 PM, Ted Woodward<br>> <<a href="mailto:ted.woodward@codeaurora.org" target="_blank">ted.woodward@codeaurora.org</a>> wrote:<br>> ><br>> > I've got a Hexagon platform, that launches the Hexagon simulator and<br>> > is used for standalone development. Now I'm working on supporting<br>> > Hexagon Linux, but it's not choosing the Linux platform, instead<br>> > it's choosing the Hexagon platform.<br>> ><br>> > I want LLDB to use the Hexagon Platform if my executable's triple is<br>> > "hexagon-unknown-elf" (which is really hexagon-unknown-unknown) and<br>> > use the Linux platform if my executable's triple is<br>"hexagon-unknown-linux".<br>> ><br>> ><br>> > First problem:<br>> > "target create" doesn't search platforms for one matching the<br>> > executable's triple. It used to, but when TargetList::CreateTarget<br>> > was switched to call CreateTargetInternal, "target create" was<br>> > changed to call the method that takes an ArchSpec instead of a<br>> > triple. This method doesn't search for a compatible Platform, but<br>> > instead chooses the<br>> current Platform.<br>> ><br>> > Is this intended behavior?<br>><br>> No. Sounds like you have an old snapshot of LLDB. The current one was<br>recently<br>> fixed to search for the platform with revision 216115.<br><br>I've got 216115. My snapshot includes up to 227289 from 1/27/15. We're<br>trying to get better about staying closer to top-of-tree, but it's something<br>we're not good enough at yet.<br><br>226712 from 1/21/15 changed how "target create" called CreateTarget() in<br>TargetList.cpp. Before that rev, it called the CreateTarget() that took a<br>triple, but after that rev it calls the CreateTarget() that takes an<br>ArchSpec. These 2 methods do different things; the triple one calls the<br>(internal) ArchSpec one at the end. One thing that is missing in the one<br>that takes an ArchSpec is the chunk of code that searches for a valid<br>platform for the specified architecture:<br><br>        else if (platform_arch.IsValid())<br>        {<br>            // if "arch" isn't valid, yet "platform_arch" is, it means we<br>have an executable file with<br>            // a single architecture which should be used<br>            ArchSpec fixed_platform_arch;<br>            if (!platform_sp->IsCompatibleArchitecture(platform_arch, false,<br>&fixed_platform_arch))<br>            {<br>                platform_sp =<br>Platform::GetPlatformForArchitecture(platform_arch, &fixed_platform_arch);<br>                if (platform_sp)<br><br>debugger.GetPlatformList().SetSelectedPlatform(platform_sp);<br>            }<br>        }<br><br>That code is not currently called by a "target create".<br><br>Vince, would changing the CreateTarget() call in CommandObjectTarget.cpp<br>back to the pre-226712 call break the remote-linux platform run process fix?<br><br>> > Second problem:<br>> > I change DoExecute() in CommandObjectTarget.cpp to call the ArchSpec<br>> > version if the ArchSpec is valid, and the triple version if it is not.<br>> > This has LLDB going through platforms to find a match, but there's<br>> > another problem when it gets to PlatformLinux.<br>> > PlatformLinux::GetSupportedArchitectureAtIndex() will only return<br>> > host<br>> architectures.<br>><br>> This is a bug and should be fixed with code below...<br>><br>> > So in my case, running on Windows, it returns x86_64-pc-windows-msvc<br>> > or i386-pc-windows-msvc. Neither is a match for Linux.<br>> ><br>> > Shouldn't the Linux platform match anything with a triple *-*-linux?<br>> > Or does the platform not matter if I'm just going to use gdb-remote<br>> > to connect to gdbserver or LLGS on a remote Hexagon Linux board?<br><br>I added the code below to PlatformLinux.cpp and now my Windows LLDB<br>correctly selects the remote-linux platform for Hexagon Linux. Thanks!<br><br>> So a platform can say what architectures it supports. This is how we<br>> match architectures up to a binary that is supplied. Each platform<br>> should give<br>an<br>> exhaustive list of the architectures they support.<br>><br>> The current code is:<br>><br>> bool<br>> PlatformLinux::GetSupportedArchitectureAtIndex (uint32_t idx, ArchSpec<br>> &arch) {<br>>     if (idx == 0)<br>>     {<br>>         arch = HostInfo::GetArchitecture(HostInfo::eArchKindDefault);<br>>         return arch.IsValid();<br>>     }<br>>     else if (idx == 1)<br>>     {<br>>         // If the default host architecture is 64-bit, look for a<br>> 32-bit<br>variant<br>>         ArchSpec hostArch =<br>> HostInfo::GetArchitecture(HostInfo::eArchKindDefault);<br>>         if (hostArch.IsValid() && hostArch.GetTriple().isArch64Bit())<br>>         {<br>>             arch = HostInfo::GetArchitecture(HostInfo::eArchKind32);<br>>             return arch.IsValid();<br>>         }<br>>     }<br>>     return false;<br>> }<br>><br>><br>> This is only correct if Platform::IsHost() returns true. Otherwise<br>> linux<br>will need<br>> to say all architectures that is supports:<br>><br>><br>> x86_64-*-linux<br>> i386-*-linux<br>> arm*-*-linux<br>> aarch64-*-linux<br>> mips64-*linux<br>><br>> The "*" above for the vendor should be set an an "unspecified<br>> unknown". So<br>the<br>> code should be:<br>><br>> bool<br>> PlatformLinux::GetSupportedArchitectureAtIndex (uint32_t idx, ArchSpec<br>> &arch) {<br>>     if (IsHost())<br>>     {<br>>         if (idx == 0)<br>>         {<br>>             arch = HostInfo::GetArchitecture(HostInfo::eArchKindDefault);<br>>             return arch.IsValid();<br>>         }<br>>         else if (idx == 1)<br>>        {<br>>             // If the default host architecture is 64-bit, look for a<br>32-bit variant<br>>             ArchSpec hostArch =<br>> HostInfo::GetArchitecture(HostInfo::eArchKindDefault);<br>>             if (hostArch.IsValid() && hostArch.GetTriple().isArch64Bit())<br>>             {<br>>                 arch = HostInfo::GetArchitecture(HostInfo::eArchKind32);<br>>                 return arch.IsValid();<br>>             }<br>>         }<br>>     }<br>>     else<br>>     {<br>>       llvm::Triple triple;<br>>         // Set the OS to linux<br>>       triple.setOS(llvm::Triple::Linux);<br>>         // Set the architecture<br>>         switch (idx)<br>>         {<br>>         case 0:  arch.setArchName("x86_64"); break;<br>>         case 1:  arch.setArchName("i386"); break;<br>>         case 2:  arch.setArchName("arm"); break;<br>>         case 3:  arch.setArchName("aarch64"); break;<br>>         case 4:  arch.setArchName("mips64"); break;<br>>         case 5:  arch.setArchName("hexagon"); break;<br>>       default: return false;<br>>         }<br>>       // Leave the vendor as "llvm::Triple:UnknownVendor" and don't<br>specify<br>> the vendor by<br>>         // calling triple.SetVendorName("unknown") so that it is a<br>"unspecified<br>> unknown".<br>>       // This means when someone calls triple.GetVendorName() it will<br>> return an empty string<br>>         // which indicates that the vendor can be set when two<br>architectures are<br>> merged<br>><br>>         // Now set the triple into "arch" and return true<br>>       arch.SetTriple(triple);<br>>       return true;<br>>     }<br>>     return false;<br>> }<br>><br>> Then things should work a bit better for you.<br><br>--<br>Qualcomm Innovation Center, Inc.<br>The Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum, a<br>Linux Foundation Collaborative Project<br><br>_______________________________________________<br>lldb-dev mailing list<br><a href="mailto:lldb-dev@cs.uiuc.edu" target="_blank">lldb-dev@cs.uiuc.edu</a><br><a href="http://lists.cs.uiuc.edu/mailman/listinfo/lldb-dev" target="_blank">http://lists.cs.uiuc.edu/mailman/listinfo/lldb-dev</a><o:p></o:p></p></blockquote></div></div></div></div></div></div></blockquote></div><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'><br><br clear=all><o:p></o:p></p><div><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'> <o:p></o:p></p></div><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'>-- <o:p></o:p></p><div><div><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'> <o:p></o:p></p><table class=MsoNormalTable border=0 cellspacing=0 cellpadding=0><tr><td nowrap style='border:none;border-top:solid #D50F25 1.5pt;padding:0in 0in 0in 0in'><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'><span style='font-family:"Arial",sans-serif;color:#555555'>Vince Harron |</span><o:p></o:p></p></td><td nowrap style='border:none;border-top:solid #3369E8 1.5pt;padding:0in 0in 0in 0in'><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'><span style='font-family:"Arial",sans-serif;color:#555555'> Technical Lead Manager |</span><o:p></o:p></p></td><td nowrap style='border:none;border-top:solid #009939 1.5pt;padding:0in 0in 0in 0in'><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'><span style='font-family:"Arial",sans-serif;color:#555555'> <a href="mailto:vharron@google.com" target="_blank">vharron@google.com</a> |</span><o:p></o:p></p></td><td nowrap style='border:none;border-top:solid #EEB211 1.5pt;padding:0in 0in 0in 0in'><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'><span style='font-family:"Arial",sans-serif;color:#555555'> <a href="tel:858-442-0868" target="_blank">858-442-0868</a></span><o:p></o:p></p></td></tr></table><p class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'> <o:p></o:p></p></div></div></div></div></div></div></div></div></blockquote></div><p class=MsoNormal><br><br clear=all><o:p></o:p></p><div><p class=MsoNormal><o:p> </o:p></p></div><p class=MsoNormal>-- <o:p></o:p></p><div><div><p class=MsoNormal><o:p> </o:p></p><table class=MsoNormalTable border=0 cellspacing=0 cellpadding=0><tr><td nowrap style='border:none;border-top:solid #D50F25 1.5pt;padding:0in 0in 0in 0in'><p class=MsoNormal><span style='font-family:"Arial",sans-serif;color:#555555'>Vince Harron |<o:p></o:p></span></p></td><td nowrap style='border:none;border-top:solid #3369E8 1.5pt;padding:0in 0in 0in 0in'><p class=MsoNormal><span style='font-family:"Arial",sans-serif;color:#555555'> Technical Lead Manager |<o:p></o:p></span></p></td><td nowrap style='border:none;border-top:solid #009939 1.5pt;padding:0in 0in 0in 0in'><p class=MsoNormal><span style='font-family:"Arial",sans-serif;color:#555555'> <a href="mailto:vharron@google.com" target="_blank">vharron@google.com</a> |<o:p></o:p></span></p></td><td nowrap style='border:none;border-top:solid #EEB211 1.5pt;padding:0in 0in 0in 0in'><p class=MsoNormal><span style='font-family:"Arial",sans-serif;color:#555555'> 858-442-0868<o:p></o:p></span></p></td></tr></table><p class=MsoNormal><o:p> </o:p></p></div></div></div></div></div></body></html>