Index: cmake/Modules/CompilerRTDarwinUtils.cmake =================================================================== --- cmake/Modules/CompilerRTDarwinUtils.cmake +++ cmake/Modules/CompilerRTDarwinUtils.cmake @@ -273,7 +273,7 @@ ../profile/InstrProfilingPlatformDarwin ../profile/InstrProfilingWriter) foreach (os ${ARGN}) - list_intersect(DARWIN_BUILTIN_ARCHS DARWIN_${os}_ARCHS BUILTIN_SUPPORTED_ARCH) + list_intersect(DARWIN_BUILTIN_ARCHS DARWIN_${os}_BUILTIN_ARCHS BUILTIN_SUPPORTED_ARCH) foreach (arch ${DARWIN_BUILTIN_ARCHS}) darwin_find_excluded_builtins_list(${arch}_${os}_EXCLUDED_BUILTINS OS ${os} Index: cmake/builtin-config-ix.cmake =================================================================== --- cmake/builtin-config-ix.cmake +++ cmake/builtin-config-ix.cmake @@ -62,6 +62,7 @@ set(DARWIN_osx_BUILTIN_MIN_VER 10.5) set(DARWIN_osx_BUILTIN_MIN_VER_FLAG -mmacosx-version-min=${DARWIN_osx_BUILTIN_MIN_VER}) + set(DARWIN_osx_BUILTIN_ALL_POSSIBLE_ARCHS ${X86} ${X86_64}) if(COMPILER_RT_ENABLE_IOS) list(APPEND DARWIN_EMBEDDED_PLATFORMS ios) @@ -69,6 +70,8 @@ set(DARWIN_ios_BUILTIN_MIN_VER 6.0) set(DARWIN_ios_BUILTIN_MIN_VER_FLAG ${DARWIN_ios_MIN_VER_FLAG}=${DARWIN_ios_BUILTIN_MIN_VER}) + set(DARWIN_ios_BUILTIN_ALL_POSSIBLE_ARCHS ${ARM64} ${ARM32}) + set(DARWIN_iossim_BUILTIN_ALL_POSSIBLE_ARCHS ${X86} ${X86_64}) endif() if(COMPILER_RT_ENABLE_WATCHOS) list(APPEND DARWIN_EMBEDDED_PLATFORMS watchos) @@ -76,6 +79,8 @@ set(DARWIN_watchos_BUILTIN_MIN_VER 2.0) set(DARWIN_watchos_BUILTIN_MIN_VER_FLAG ${DARWIN_watchos_MIN_VER_FLAG}=${DARWIN_watchos_BUILTIN_MIN_VER}) + set(DARWIN_watchos_BUILTIN_ALL_POSSIBLE_ARCHS armv7 armv7k) + set(DARWIN_watchossim_BUILTIN_ALL_POSSIBLE_ARCHS ${X86}) endif() if(COMPILER_RT_ENABLE_TVOS) list(APPEND DARWIN_EMBEDDED_PLATFORMS tvos) @@ -83,6 +88,8 @@ set(DARWIN_tvos_BUILTIN_MIN_VER 9.0) set(DARWIN_tvos_BUILTIN_MIN_VER_FLAG ${DARWIN_tvos_MIN_VER_FLAG}=${DARWIN_tvos_BUILTIN_MIN_VER}) + set(DARWIN_tvos_BUILTIN_ALL_POSSIBLE_ARCHS armv7 arm64) + set(DARWIN_tvossim_BUILTIN_ALL_POSSIBLE_ARCHS ${X86} ${X86_64}) endif() set(BUILTIN_SUPPORTED_OS osx) @@ -90,15 +97,16 @@ # We're setting the flag manually for each target OS set(CMAKE_OSX_DEPLOYMENT_TARGET "") - if(NOT DARWIN_osx_ARCHS) - set(DARWIN_osx_ARCHS i386 x86_64 x86_64h) - endif() - - set(DARWIN_sim_ARCHS i386 x86_64) - set(DARWIN_device_ARCHS armv7 armv7s armv7k arm64) - - message(STATUS "OSX supported arches: ${DARWIN_osx_ARCHS}") - foreach(arch ${DARWIN_osx_ARCHS}) + # NOTE: We deliberately avoid using `DARWIN__ARCHS` here because that is + # used by `config-ix.cmake` in the context of building the rest of + # compiler-rt where the global `${TEST_COMPILE_ONLY}` (used by + # `darwin_test_archs()`) has a different value. + darwin_test_archs(osx + DARWIN_osx_BUILTIN_ARCHS + ${DARWIN_osx_BUILTIN_ALL_POSSIBLE_ARCHS} + ) + message(STATUS "OSX supported builtin arches: ${DARWIN_osx_BUILTIN_ARCHS}") + foreach(arch ${DARWIN_osx_BUILTIN_ARCHS}) list(APPEND COMPILER_RT_SUPPORTED_ARCH ${arch}) set(CAN_TARGET_${arch} 1) endforeach() @@ -112,38 +120,30 @@ set(DARWIN_${platform}sim_SKIP_CC_KEXT On) - set(test_arches ${DARWIN_sim_ARCHS}) - if(DARWIN_${platform}sim_ARCHS) - set(test_arches DARWIN_${platform}sim_ARCHS) - endif() - darwin_test_archs(${platform}sim - DARWIN_${platform}sim_ARCHS - ${test_arches}) - message(STATUS "${platform} Simulator supported builtin arches: ${DARWIN_${platform}sim_ARCHS}") - if(DARWIN_${platform}sim_ARCHS) + DARWIN_${platform}sim_BUILTIN_ARCHS + ${DARWIN_${platform}sim_BUILTIN_ALL_POSSIBLE_ARCHS} + ) + message(STATUS "${platform} Simulator supported builtin arches: ${DARWIN_${platform}sim_BUILTIN_ARCHS}") + if(DARWIN_${platform}sim_BUILTIN_ARCHS) list(APPEND BUILTIN_SUPPORTED_OS ${platform}sim) endif() - foreach(arch ${DARWIN_${platform}sim_ARCHS}) + foreach(arch ${DARWIN_${platform}sim_BUILTIN_ARCHS}) list(APPEND COMPILER_RT_SUPPORTED_ARCH ${arch}) set(CAN_TARGET_${arch} 1) endforeach() endif() if(DARWIN_${platform}_SYSROOT) - set(test_arches ${DARWIN_device_ARCHS}) - if(DARWIN_${platform}_ARCHS) - set(test_arches DARWIN_${platform}_ARCHS) - endif() - darwin_test_archs(${platform} - DARWIN_${platform}_ARCHS - ${test_arches}) - message(STATUS "${platform} supported builtin arches: ${DARWIN_${platform}_ARCHS}") - if(DARWIN_${platform}_ARCHS) + DARWIN_${platform}_BUILTIN_ARCHS + ${DARWIN_${platform}_BUILTIN_ALL_POSSIBLE_ARCHS} + ) + message(STATUS "${platform} supported builtin arches: ${DARWIN_${platform}_BUILTIN_ARCHS}") + if(DARWIN_${platform}_BUILTIN_ARCHS) list(APPEND BUILTIN_SUPPORTED_OS ${platform}) endif() - foreach(arch ${DARWIN_${platform}_ARCHS}) + foreach(arch ${DARWIN_${platform}_BUILTIN_ARCHS}) list(APPEND COMPILER_RT_SUPPORTED_ARCH ${arch}) set(CAN_TARGET_${arch} 1) endforeach()