diff --git a/clang/lib/Driver/ToolChains/Darwin.cpp b/clang/lib/Driver/ToolChains/Darwin.cpp --- a/clang/lib/Driver/ToolChains/Darwin.cpp +++ b/clang/lib/Driver/ToolChains/Darwin.cpp @@ -1219,7 +1219,7 @@ return "osx"; case DarwinPlatformKind::IPhoneOS: if (TargetEnvironment == MacCatalyst) - return "osx"; + return "catalyst"; return TargetEnvironment == NativeEnvironment || IgnoreSim ? "ios" : "iossim"; case DarwinPlatformKind::TvOS: diff --git a/clang/test/Driver/darwin-sanitizer-ld.c b/clang/test/Driver/darwin-sanitizer-ld.c --- a/clang/test/Driver/darwin-sanitizer-ld.c +++ b/clang/test/Driver/darwin-sanitizer-ld.c @@ -101,7 +101,7 @@ // CHECK-ASAN-MACCATALYST: "{{.*}}ld{{(.exe)?}}" // CHECK-ASAN-MACCATALYST-NOT: "-lstdc++" // CHECK-ASAN-MACCATALYST-NOT: "-lc++" -// CHECK-ASAN-MACCATALYST: libclang_rt.asan_osx_dynamic.dylib" +// CHECK-ASAN-MACCATALYST: libclang_rt.asan_catalyst_dynamic.dylib" // CHECK-ASAN-MACCATALYST: "-rpath" "@executable_path" // CHECK-ASAN-MACCATALYST: "-rpath" "{{.*}}lib{{.*}}darwin" diff --git a/compiler-rt/cmake/builtin-config-ix.cmake b/compiler-rt/cmake/builtin-config-ix.cmake --- a/compiler-rt/cmake/builtin-config-ix.cmake +++ b/compiler-rt/cmake/builtin-config-ix.cmake @@ -71,6 +71,7 @@ if(APPLE) find_darwin_sdk_dir(DARWIN_osx_SYSROOT macosx) + find_darwin_sdk_dir(DARWIN_catalyst_SYSROOT macosx) find_darwin_sdk_dir(DARWIN_iossim_SYSROOT iphonesimulator) find_darwin_sdk_dir(DARWIN_ios_SYSROOT iphoneos) find_darwin_sdk_dir(DARWIN_watchossim_SYSROOT watchsimulator) @@ -115,7 +116,14 @@ 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}) + set(DARWIN_iossim_BUILTIN_ALL_POSSIBLE_ARCHS ${X86} ${X86_64} ${ARM64}) + list(APPEND DARWIN_EMBEDDED_PLATFORMS catalyst) + set(DARWIN_catalyst_BUILTIN_MIN_VER 13.0) + set(DARWIN_catalyst_BUILTIN_MIN_VER_FLAG + ${DARWIN_ios_MIN_VER_FLAG}=${DARWIN_catalyst_BUILTIN_MIN_VER} + -target + ${LIB_ARCH}-apple-ios${DARWIN_catalyst_BUILTIN_MIN_VER}-macabi) + set(DARWIN_catalyst_BUILTIN_ALL_POSSIBLE_ARCHS ${X86_64} ${ARM64}) endif() if(COMPILER_RT_ENABLE_WATCHOS) list(APPEND DARWIN_EMBEDDED_PLATFORMS watchos) @@ -178,6 +186,10 @@ endforeach() endif() + if("${platform}" STREQUAL "catalyst") + set(DARWIN_${platform}_SKIP_CC_KEXT On) + endif() + if(DARWIN_${platform}_SYSROOT) darwin_test_archs(${platform} DARWIN_${platform}_BUILTIN_ARCHS diff --git a/compiler-rt/cmake/config-ix.cmake b/compiler-rt/cmake/config-ix.cmake --- a/compiler-rt/cmake/config-ix.cmake +++ b/compiler-rt/cmake/config-ix.cmake @@ -310,7 +310,7 @@ if ("${platform}" STREQUAL "") message(FATAL_ERROR "platform cannot be empty") endif() - if ("${platform}" MATCHES "^(osx|((ios|watchos|tvos)(sim)?))$") + if ("${platform}" MATCHES "^(osx|((ios|watchos|tvos)(sim)?)|catalyst)$") set(is_valid TRUE) endif() set(${is_valid_out} ${is_valid} PARENT_SCOPE) @@ -347,6 +347,7 @@ include(CompilerRTDarwinUtils) find_darwin_sdk_dir(DARWIN_osx_SYSROOT macosx) + find_darwin_sdk_dir(DARWIN_catalyst_SYSROOT macosx) find_darwin_sdk_dir(DARWIN_iossim_SYSROOT iphonesimulator) find_darwin_sdk_dir(DARWIN_ios_SYSROOT iphoneos) find_darwin_sdk_dir(DARWIN_watchossim_SYSROOT watchsimulator) @@ -372,6 +373,12 @@ set(DARWIN_iossim_MIN_VER_FLAG -mios-simulator-version-min) set(DARWIN_iossim_SANITIZER_MIN_VER_FLAG ${DARWIN_iossim_MIN_VER_FLAG}=${DARWIN_ios_MIN_VER}) + list(APPEND DARWIN_EMBEDDED_PLATFORMS catalyst) + set(DARWIN_catalyst_MIN_VER 13.0) + set(DARWIN_catalyst_SANITIZER_MIN_VER_FLAG + ${DARWIN_ios_MIN_VER_FLAG}=${DARWIN_catalyst_MIN_VER} + -target + ${LIB_ARCH}-apple-ios${DARWIN_catalyst_MIN_VER}-macabi) endif() if(COMPILER_RT_ENABLE_WATCHOS) list(APPEND DARWIN_EMBEDDED_PLATFORMS watchos) @@ -499,6 +506,10 @@ endforeach() endif() + if("${platform}" STREQUAL "catalyst") + set(DARWIN_${platform}_SKIP_CC_KEXT On) + endif() + if(DARWIN_${platform}_SYSROOT) set(DARWIN_${platform}_CFLAGS ${DARWIN_COMMON_CFLAGS}