Currently, the compiler-rt build system checks only whether __X86_64
is defined to determine whether the default compiler-rt target arch
is x86_64. Since x32 defines __X86_64 as well, we must also check that
the default pointer size is eight bytes and not four bytes to properly
detect a 64-bit x86_64 compiler-rt default target arch.
Reviewed By: hvdijk, vitalybuka
Differential Revision: https://reviews.llvm.org/D99988
elseif(__AARCH64)
add_default_target_arch(aarch64)
elseif(__X86_64)
- add_default_target_arch(x86_64)
+ if(CMAKE_SIZEOF_VOID_P EQUAL "4")
+ add_default_target_arch(x32)
+ elseif(CMAKE_SIZEOF_VOID_P EQUAL "8")
+ add_default_target_arch(x86_64)
+ else()
+ message(FATAL_ERROR "Unsupported pointer size for X86_64")
+ endif()
elseif(__I386)
add_default_target_arch(i386)
elseif(__MIPS64) # must be checked before __MIPS