From 8887c63e327fb726b502b3b2fad44e50de60d5aa Mon Sep 17 00:00:00 2001 From: Julian Lettner Date: Tue, 12 Apr 2022 13:58:33 -0700 Subject: [PATCH] Adapt "cross compile?" check for Apple Silicon This piece of code tries to implement the semantics "cross compile?" to determine CFLAGS used for test binary compilation. ``` if(ANDROID OR ${arch} MATCHES "arm|aarch64|riscv32|riscv64") ``` Since Apple Silicon, macOS runs on arm64e, so we take the wrong branch when compiling and running tests locally "on the host" on an AS machine. Furthermore, for Apple code, we use the separate `get_test_cflags_for_apple_platform` function to determine these test compiliation flags and `get_test_cc_for_arch` is only ever used in the "compile & run on host" case, so we can short-curcuit the "cross compile?" check here. rdar://91446703 Differential Revision: https://reviews.llvm.org/D123633 --- compiler-rt/cmake/config-ix.cmake | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/compiler-rt/cmake/config-ix.cmake b/compiler-rt/cmake/config-ix.cmake index 729809f..ba84f0b 100644 --- a/compiler-rt/cmake/config-ix.cmake +++ b/compiler-rt/cmake/config-ix.cmake @@ -244,7 +244,7 @@ endfunction() # specific architecture. When cross-compiling, this is controled via # COMPILER_RT_TEST_COMPILER and COMPILER_RT_TEST_COMPILER_CFLAGS. macro(get_test_cc_for_arch arch cc_out cflags_out) - if(ANDROID OR ${arch} MATCHES "arm|aarch64|riscv32|riscv64") + if(ANDROID OR (NOT APPLE AND ${arch} MATCHES "arm|aarch64|riscv32|riscv64")) # This is only true if we are cross-compiling. # Build all tests with host compiler and use host tools. set(${cc_out} ${COMPILER_RT_TEST_COMPILER}) -- 2.7.4