[PATCH] D117924: [compiler_rt] Add a seperate runtime for Mac Catalyst

2022-02-21 Thread Byoungchan Lee via Phabricator via cfe-commits
bc-lee abandoned this revision.
bc-lee added a comment.

Closed in favor of https://reviews.llvm.org/D118862 and 
https://reviews.llvm.org/D118875


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D117924/new/

https://reviews.llvm.org/D117924

___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits


[PATCH] D117924: [compiler_rt] Add a seperate runtime for Mac Catalyst

2022-02-03 Thread Thorsten via Phabricator via cfe-commits
tschuett added a comment.

https://reviews.llvm.org/D118862
https://reviews.llvm.org/D118875


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D117924/new/

https://reviews.llvm.org/D117924

___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits


[PATCH] D117924: [compiler_rt] Add a seperate runtime for Mac Catalyst

2022-02-02 Thread Byoungchan Lee via Phabricator via cfe-commits
bc-lee updated this revision to Diff 405461.

Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D117924/new/

https://reviews.llvm.org/D117924

Files:
  clang/lib/Driver/ToolChains/Darwin.cpp
  clang/test/Driver/darwin-sanitizer-ld.c
  compiler-rt/cmake/builtin-config-ix.cmake
  compiler-rt/cmake/config-ix.cmake

Index: compiler-rt/cmake/config-ix.cmake
===
--- compiler-rt/cmake/config-ix.cmake
+++ compiler-rt/cmake/config-ix.cmake
@@ -304,7 +304,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)
@@ -341,6 +341,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)
@@ -366,6 +367,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)
@@ -493,6 +500,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}
Index: compiler-rt/cmake/builtin-config-ix.cmake
===
--- compiler-rt/cmake/builtin-config-ix.cmake
+++ 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)
@@ -116,6 +117,13 @@
   ${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} 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
Index: clang/test/Driver/darwin-sanitizer-ld.c
===
--- clang/test/Driver/darwin-sanitizer-ld.c
+++ 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"
 
Index: clang/lib/Driver/ToolChains/Darwin.cpp
===
--- clang/lib/Driver/ToolChains/Darwin.cpp
+++ 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:
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits


[PATCH] D117924: [compiler_rt] Add a seperate runtime for Mac Catalyst

2022-02-02 Thread Byoungchan Lee via Phabricator via cfe-commits
bc-lee added a comment.

Some changes in this patch were applied as  https://reviews.llvm.org/D118759, 
so I'm re-uploading this patch to get rid of merge conflicts.


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D117924/new/

https://reviews.llvm.org/D117924

___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits


[PATCH] D117924: [compiler_rt] Add a seperate runtime for Mac Catalyst

2022-01-28 Thread Byoungchan Lee via Phabricator via cfe-commits
bc-lee added a comment.

For the Chromium side issue is https://crbug.com/1259122. Also I opened LLVM 
issue https://github.com/llvm/llvm-project/issues/53477.


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D117924/new/

https://reviews.llvm.org/D117924

___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits


[PATCH] D117924: [compiler_rt] Add a seperate runtime for Mac Catalyst

2022-01-28 Thread Nico Weber via Phabricator via cfe-commits
thakis added a comment.

In D117924#3274425 , @bc-lee wrote:

> It may not be appropriate to add other runtime libraries specifically for Mac 
> Catalyst. However, currently `lld` does not allow linking with dynamic 
> libraries with different types of build_version_command, whereas `ld64` does 
> allow for Mac Catalyst. Considering compatibility with lld

If lld doesn't support something we need, we should add support for the missing 
part to lld instead of working around it. Is there a bug on file for the 
missing lld bit?


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D117924/new/

https://reviews.llvm.org/D117924

___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits


[PATCH] D117924: [compiler_rt] Add a seperate runtime for Mac Catalyst

2022-01-26 Thread Byoungchan Lee via Phabricator via cfe-commits
bc-lee added a comment.

It may not be appropriate to add other runtime libraries specifically for Mac 
Catalyst. However, currently `lld` does not allow linking with dynamic 
libraries with different types of build_version_command, whereas `ld64` does 
allow for Mac Catalyst. Considering compatibility with lld, Mac Catalyst’s 
runtime libraries need to be added also.

See my other patch https://reviews.llvm.org/D117925 for more details.


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D117924/new/

https://reviews.llvm.org/D117924

___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits


[PATCH] D117924: [compiler_rt] Add a seperate runtime for Mac Catalyst

2022-01-26 Thread Dan Liew via Phabricator via cfe-commits
delcypher added a comment.

@bc-lee Thanks for the patch. While I get what you're trying to do I have 
doubts about being able to accept the patch in its current form. Apple's ASan 
catalyst doesn't work by building a separate dylib, instead it builds the 
macosx dylib in a different way to make it work with catalyst code.

I've made @aralisza a blocking reviewer because she'll need to approve this.


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D117924/new/

https://reviews.llvm.org/D117924

___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits


[PATCH] D117924: [compiler_rt] Add a seperate runtime for Mac Catalyst

2022-01-22 Thread Byoungchan Lee via Phabricator via cfe-commits
bc-lee updated this revision to Diff 402201.

Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D117924/new/

https://reviews.llvm.org/D117924

Files:
  clang/lib/Driver/ToolChains/Darwin.cpp
  clang/test/Driver/darwin-sanitizer-ld.c
  compiler-rt/cmake/builtin-config-ix.cmake
  compiler-rt/cmake/config-ix.cmake

Index: compiler-rt/cmake/config-ix.cmake
===
--- compiler-rt/cmake/config-ix.cmake
+++ 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}
Index: compiler-rt/cmake/builtin-config-ix.cmake
===
--- compiler-rt/cmake/builtin-config-ix.cmake
+++ 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
Index: clang/test/Driver/darwin-sanitizer-ld.c
===
--- clang/test/Driver/darwin-sanitizer-ld.c
+++ 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"
 
Index: clang/lib/Driver/ToolChains/Darwin.cpp
===
--- clang/lib/Driver/ToolChains/Darwin.cpp
+++ 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:
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/lis

[PATCH] D117924: [compiler_rt] Add a seperate runtime for Mac Catalyst

2022-01-21 Thread Byoungchan Lee via Phabricator via cfe-commits
bc-lee created this revision.
Herald added a subscriber: mgorny.
bc-lee requested review of this revision.
Herald added projects: clang, Sanitizers.
Herald added subscribers: Sanitizers, cfe-commits.

Mac Catalyst has different platform fields in build_version_command,
so it's natural to create a separate libclang_rt.


Repository:
  rG LLVM Github Monorepo

https://reviews.llvm.org/D117924

Files:
  clang/lib/Driver/ToolChains/Darwin.cpp
  compiler-rt/cmake/builtin-config-ix.cmake
  compiler-rt/cmake/config-ix.cmake


Index: compiler-rt/cmake/config-ix.cmake
===
--- compiler-rt/cmake/config-ix.cmake
+++ 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}
Index: compiler-rt/cmake/builtin-config-ix.cmake
===
--- compiler-rt/cmake/builtin-config-ix.cmake
+++ 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
Index: clang/lib/Driver/ToolChains/Darwin.cpp
===
--- clang/lib/Driver/ToolChains/Darwin.cpp
+++ 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:


Index: compiler-rt/cmake/config-ix.cmake
===
--- compiler-rt/cmake/config-ix.cmake
+++ 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(CompilerRTDarwinUti