<div dir="ltr">I expect in practice the places where we are going to need to differentiate in aarch64/arm64 is really going to be along OS lines --- Apple's ABI is different than what I think we use on other OSes (is that right, Greg?).  But that's going to only matter in a few places I think, like stack unwinding and other areas around determining which instruction set is currently operating (thumb/arm/etc.) and possibly which registers get used for what.<div>
<br></div><div>Paul, if you adjust that patch for what Greg indicated, I can give it a run over here and verify all the normal Linux paths are still working.</div></div><div class="gmail_extra"><br><br><div class="gmail_quote">
On Mon, Jul 7, 2014 at 1:39 PM, Paul Osmialowski <span dir="ltr"><<a href="mailto:pawelo@king.net.pl" target="_blank">pawelo@king.net.pl</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
Hi Greg,<br>
<br>
I really wasn't sure about this one. I looked through the code to see where RNB_ARCH is used and it seems like it's only for debugging purposes. In my view, it would be useful to distinguish how this platform architecture was recoginsed at compile time. However, as I said, I'm not sure about that, since I do realize that it may collide with some common policy.<br>

<br>
Cheers,<br>
Paul<div class="HOEnZb"><div class="h5"><br>
<br>
On Mon, 7 Jul 2014, Greg Clayton wrote:<br>
<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
Looks good except for "RNBRemote.cpp" which was:<br>
<br>
#elif defined (__aarch64__)<br>
<br>
#define RNB_ARCH    "aarch64"<br>
<br>
#elif defined (__arm64__)<br>
<br>
#define RNB_ARCH    "arm64"<br>
<br>
...<br>
<br>
and should be:<br>
<br>
<br>
#elif defined (__arm64__) || defined (__aarch64__)<br>
<br>
#define RNB_ARCH    "arm64"<br>
<br>
...<br>
<br>
<br>
We don't have any internal support for aarch64, so we should just pretend it is "arm64" for now.<br>
<br>
Greg<br>
<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
On Jul 3, 2014, at 2:10 PM, Paul Osmialowski <<a href="mailto:pawelo@king.net.pl" target="_blank">pawelo@king.net.pl</a>> wrote:<br>
<br>
It's started with simple program:<br>
<br>
#ifdef __i386__<br>
#warning this is __i386__<br>
#else<br>
#warning this is NOT __i386__<br>
#endif<br>
<br>
#ifdef __x86_64__<br>
#warning this is __x86_64__<br>
#else<br>
#warning this is NOT __x86_64__<br>
#endif<br>
<br>
#ifdef __aarch64__<br>
#warning this is __aarch64__<br>
#else<br>
#warning this is NOT __aarch64__<br>
#endif<br>
<br>
#ifdef __arm64__<br>
#warning this is __arm64__<br>
#else<br>
#warning this is NOT __arm64__<br>
#endif<br>
<br>
#ifdef __arm__<br>
#warning this is __arm__<br>
#else<br>
#warning this is NOT __arm__<br>
#endif<br>
<br>
When cross-compiling on Linux for AArch64 using Linaro toolchain, the pre-processor produces following output:<br>
$ aarch64-linux-gnu-gcc-4.8.2 -Wall -c aarch64.c<br>
aarch64.c:4:2: warning: #warning this is NOT __i386__ [-Wcpp]<br>
#warning this is NOT __i386__<br>
 ^<br>
aarch64.c:10:2: warning: #warning this is NOT __x86_64__ [-Wcpp]<br>
#warning this is NOT __x86_64__<br>
 ^<br>
aarch64.c:14:2: warning: #warning this is __aarch64__ [-Wcpp]<br>
#warning this is __aarch64__<br>
 ^<br>
aarch64.c:22:2: warning: #warning this is NOT __arm64__ [-Wcpp]<br>
#warning this is NOT __arm64__<br>
 ^<br>
aarch64.c:28:2: warning: #warning this is NOT __arm__ [-Wcpp]<br>
#warning this is NOT __arm__<br>
 ^<br>
<br>
I expect that other cross-compilers define __arm64__ instead of __aarch64__ (or both), so there's my patch that causes checking for both. This is all-or-nothing approach, I did not try to investigate whether any of the parts of affected code are compiled on Linux or MacOSX - I altered all places where __arm64__ was used.<br>

Before applying, it's worth to try if it still builds for ARM64 on MacOSX.<br>
<br>
<a href="http://reviews.llvm.org/D4379" target="_blank">http://reviews.llvm.org/D4379</a><br>
<br>
Files:<br>
 source/Core/Error.cpp<br>
 source/Host/common/Host.cpp<br>
 source/Host/macosx/Host.mm<br>
 source/Host/macosx/Symbols.cpp<br>
 source/Interpreter/<u></u>CommandInterpreter.cpp<br>
 source/Plugins/ObjectFile/<u></u>Mach-O/ObjectFileMachO.cpp<br>
 source/Plugins/Platform/<u></u>MacOSX/PlatformDarwinKernel.<u></u>cpp<br>
 source/Plugins/Platform/<u></u>MacOSX/PlatformMacOSX.cpp<br>
 source/Plugins/Process/<u></u>Utility/RegisterContextDarwin_<u></u>arm64.cpp<br>
 source/Plugins/Process/<u></u>Utility/<u></u>RegisterContextMacOSXFrameBack<u></u>chain.cpp<br>
 source/Plugins/Process/gdb-<u></u>remote/<u></u>GDBRemoteCommunicationServer.<u></u>cpp<br>
 source/Plugins/Process/gdb-<u></u>remote/ProcessGDBRemote.cpp<br>
 test/functionalities/data-<u></u>formatter/data-formatter-objc/<u></u>main.m<br>
 tools/debugserver/source/DNB.<u></u>cpp<br>
 tools/debugserver/source/<u></u>DNBDefs.h<br>
 tools/debugserver/source/<u></u>MacOSX/MachThreadList.cpp<br>
 tools/debugserver/source/<u></u>MacOSX/arm/DNBArchImpl.cpp<br>
 tools/debugserver/source/<u></u>MacOSX/arm/DNBArchImpl.h<br>
 tools/debugserver/source/<u></u>MacOSX/arm64/DNBArchImplARM64.<u></u>cpp<br>
 tools/debugserver/source/<u></u>MacOSX/arm64/DNBArchImplARM64.<u></u>h<br>
 tools/debugserver/source/<u></u>RNBDefs.h<br>
 tools/debugserver/source/<u></u>RNBRemote.cpp<br>
<D4379.11066.patch>___________<u></u>______________________________<u></u>______<br>
lldb-commits mailing list<br>
<a href="mailto:lldb-commits@cs.uiuc.edu" target="_blank">lldb-commits@cs.uiuc.edu</a><br>
<a href="http://lists.cs.uiuc.edu/mailman/listinfo/lldb-commits" target="_blank">http://lists.cs.uiuc.edu/<u></u>mailman/listinfo/lldb-commits</a><br>
</blockquote>
<br>
</blockquote>
______________________________<u></u>_________________<br>
lldb-commits mailing list<br>
<a href="mailto:lldb-commits@cs.uiuc.edu" target="_blank">lldb-commits@cs.uiuc.edu</a><br>
<a href="http://lists.cs.uiuc.edu/mailman/listinfo/lldb-commits" target="_blank">http://lists.cs.uiuc.edu/<u></u>mailman/listinfo/lldb-commits</a><br>
</div></div></blockquote></div><br><br clear="all"><div><br></div>-- <br><div dir="ltr"><table cellspacing="0" cellpadding="0" style="color:rgb(136,136,136);font-family:'Times New Roman'"><tbody><tr style="color:rgb(85,85,85);font-family:sans-serif;font-size:small">
<td nowrap style="border-top-style:solid;border-top-color:rgb(213,15,37);border-top-width:2px">Todd Fiala |</td><td nowrap style="border-top-style:solid;border-top-color:rgb(51,105,232);border-top-width:2px"> Software Engineer |</td>
<td nowrap style="border-top-style:solid;border-top-color:rgb(0,153,57);border-top-width:2px"> <a href="mailto:tfiala@google.com" style="color:rgb(17,85,204)" target="_blank"><span style="background-color:rgb(255,255,204);color:rgb(34,34,34);background-repeat:initial initial">tfiala@google.com</span></a> |</td>
<td nowrap style="border-top-style:solid;border-top-color:rgb(238,178,17);border-top-width:2px"><font color="#1155cc"> <a>650-943-3180</a></font></td></tr></tbody></table><br></div>
</div>