[Lldb-commits] [PATCH] lldb - __arm64__ vs __aarch64__ insanity

Greg Clayton gclayton at apple.com
Mon Jul 7 11:12:16 PDT 2014


Looks good except for "RNBRemote.cpp" which was:

#elif defined (__aarch64__)

#define RNB_ARCH    "aarch64"

#elif defined (__arm64__)

#define RNB_ARCH    "arm64"

...

and should be:


#elif defined (__arm64__) || defined (__aarch64__)

#define RNB_ARCH    "arm64"

...


We don't have any internal support for aarch64, so we should just pretend it is "arm64" for now.

Greg

> On Jul 3, 2014, at 2:10 PM, Paul Osmialowski <pawelo at king.net.pl> wrote:
> 
> It's started with simple program:
> 
> #ifdef __i386__
> #warning this is __i386__
> #else
> #warning this is NOT __i386__
> #endif
> 
> #ifdef __x86_64__
> #warning this is __x86_64__
> #else
> #warning this is NOT __x86_64__
> #endif
> 
> #ifdef __aarch64__
> #warning this is __aarch64__
> #else
> #warning this is NOT __aarch64__
> #endif
> 
> #ifdef __arm64__
> #warning this is __arm64__
> #else
> #warning this is NOT __arm64__
> #endif
> 
> #ifdef __arm__
> #warning this is __arm__
> #else
> #warning this is NOT __arm__
> #endif
> 
> When cross-compiling on Linux for AArch64 using Linaro toolchain, the pre-processor produces following output:
> $ aarch64-linux-gnu-gcc-4.8.2 -Wall -c aarch64.c
> aarch64.c:4:2: warning: #warning this is NOT __i386__ [-Wcpp]
> #warning this is NOT __i386__
>  ^
> aarch64.c:10:2: warning: #warning this is NOT __x86_64__ [-Wcpp]
> #warning this is NOT __x86_64__
>  ^
> aarch64.c:14:2: warning: #warning this is __aarch64__ [-Wcpp]
> #warning this is __aarch64__
>  ^
> aarch64.c:22:2: warning: #warning this is NOT __arm64__ [-Wcpp]
> #warning this is NOT __arm64__
>  ^
> aarch64.c:28:2: warning: #warning this is NOT __arm__ [-Wcpp]
> #warning this is NOT __arm__
>  ^
> 
> 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.
> Before applying, it's worth to try if it still builds for ARM64 on MacOSX.
> 
> http://reviews.llvm.org/D4379
> 
> Files:
>  source/Core/Error.cpp
>  source/Host/common/Host.cpp
>  source/Host/macosx/Host.mm
>  source/Host/macosx/Symbols.cpp
>  source/Interpreter/CommandInterpreter.cpp
>  source/Plugins/ObjectFile/Mach-O/ObjectFileMachO.cpp
>  source/Plugins/Platform/MacOSX/PlatformDarwinKernel.cpp
>  source/Plugins/Platform/MacOSX/PlatformMacOSX.cpp
>  source/Plugins/Process/Utility/RegisterContextDarwin_arm64.cpp
>  source/Plugins/Process/Utility/RegisterContextMacOSXFrameBackchain.cpp
>  source/Plugins/Process/gdb-remote/GDBRemoteCommunicationServer.cpp
>  source/Plugins/Process/gdb-remote/ProcessGDBRemote.cpp
>  test/functionalities/data-formatter/data-formatter-objc/main.m
>  tools/debugserver/source/DNB.cpp
>  tools/debugserver/source/DNBDefs.h
>  tools/debugserver/source/MacOSX/MachThreadList.cpp
>  tools/debugserver/source/MacOSX/arm/DNBArchImpl.cpp
>  tools/debugserver/source/MacOSX/arm/DNBArchImpl.h
>  tools/debugserver/source/MacOSX/arm64/DNBArchImplARM64.cpp
>  tools/debugserver/source/MacOSX/arm64/DNBArchImplARM64.h
>  tools/debugserver/source/RNBDefs.h
>  tools/debugserver/source/RNBRemote.cpp
> <D4379.11066.patch>_______________________________________________
> lldb-commits mailing list
> lldb-commits at cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/lldb-commits




More information about the lldb-commits mailing list