diff options
author | Guillaume Chatelet <gchatelet@google.com> | 2021-05-05 18:52:42 +0300 |
---|---|---|
committer | Guillaume Chatelet <gchatelet@google.com> | 2021-05-05 18:52:42 +0300 |
commit | 7c2ece523d7ff74f3eeabce1b9685f3eaae8cff4 (patch) | |
tree | b4bc5dc399344b7a4e7d1583a96afc903c3f72ee /libc/cmake/modules/LLVMLibCArchitectures.cmake | |
parent | efc31be7f8e8487c774dd9052980b67f0d5e70e2 (diff) |
[libc] Normalize LIBC_TARGET_MACHINE
Current implementation defines LIBC_TARGET_MACHINE with the use of CMAKE_SYSTEM_PROCESSOR.
Unfortunately CMAKE_SYSTEM_PROCESSOR is OS dependent and can produce different results.
An evidence of this is the various matchers used to detect whether the architecture is x86.
This patch normalizes LIBC_TARGET_MACHINE and renames it LIBC_TARGET_ARCHITECTURE.
I've added many architectures but we may want to limit ourselves to x86 and ARM.
Differential Revision: https://reviews.llvm.org/D101524
Diffstat (limited to 'libc/cmake/modules/LLVMLibCArchitectures.cmake')
-rw-r--r-- | libc/cmake/modules/LLVMLibCArchitectures.cmake | 22 |
1 files changed, 22 insertions, 0 deletions
diff --git a/libc/cmake/modules/LLVMLibCArchitectures.cmake b/libc/cmake/modules/LLVMLibCArchitectures.cmake new file mode 100644 index 000000000000..8d49054ed048 --- /dev/null +++ b/libc/cmake/modules/LLVMLibCArchitectures.cmake @@ -0,0 +1,22 @@ +# ------------------------------------------------------------------------------ +# Architecture definitions +# ------------------------------------------------------------------------------ + +if(CMAKE_SYSTEM_PROCESSOR MATCHES "^mips") + set(LIBC_TARGET_ARCHITECTURE_IS_MIPS TRUE) + set(LIBC_TARGET_ARCHITECTURE "mips") +elseif(CMAKE_SYSTEM_PROCESSOR MATCHES "^arm") + set(LIBC_TARGET_ARCHITECTURE_IS_ARM TRUE) + set(LIBC_TARGET_ARCHITECTURE "arm") +elseif(CMAKE_SYSTEM_PROCESSOR MATCHES "^aarch64") + set(LIBC_TARGET_ARCHITECTURE_IS_AARCH64 TRUE) + set(LIBC_TARGET_ARCHITECTURE "aarch64") +elseif(CMAKE_SYSTEM_PROCESSOR MATCHES "(x86_64)|(AMD64|amd64)|(^i.86$)") + set(LIBC_TARGET_ARCHITECTURE_IS_X86 TRUE) + set(LIBC_TARGET_ARCHITECTURE "x86_64") +elseif(CMAKE_SYSTEM_PROCESSOR MATCHES "^(powerpc|ppc)") + set(LIBC_TARGET_ARCHITECTURE_IS_POWER TRUE) + set(LIBC_TARGET_ARCHITECTURE "power") +else() + message(FATAL_ERROR "Unsupported processor ${CMAKE_SYSTEM_PROCESSOR}") +endif() |