about summary refs log tree commit diff
path: root/pkgs/development/compilers/swift/compiler/patches/swift-darwin-libcxx-flags.patch
diff options
context:
space:
mode:
Diffstat (limited to 'pkgs/development/compilers/swift/compiler/patches/swift-darwin-libcxx-flags.patch')
-rw-r--r--pkgs/development/compilers/swift/compiler/patches/swift-darwin-libcxx-flags.patch63
1 files changed, 0 insertions, 63 deletions
diff --git a/pkgs/development/compilers/swift/compiler/patches/swift-darwin-libcxx-flags.patch b/pkgs/development/compilers/swift/compiler/patches/swift-darwin-libcxx-flags.patch
deleted file mode 100644
index c2b5adafa592..000000000000
--- a/pkgs/development/compilers/swift/compiler/patches/swift-darwin-libcxx-flags.patch
+++ /dev/null
@@ -1,63 +0,0 @@
-On Darwin, the SDK is a directory of stubs, and libc++ lives separately. We
-need to patch the CMake files in several places to make the build for C++
-interop succeed. The required flags can be read from cc-wrapper support files.
-
---- a/SwiftCompilerSources/CMakeLists.txt
-+++ b/SwiftCompilerSources/CMakeLists.txt
-@@ -105,18 +105,11 @@ function(add_swift_compiler_modules_library name)
-       get_filename_component(swift_exec_bin_dir ${ALS_SWIFT_EXEC} DIRECTORY)
-       set(sdk_option ${sdk_option} "-resource-dir" "${swift_exec_bin_dir}/../bootstrapping0/lib/swift")
-     endif()
--    if(NOT EXISTS "${sdk_path}/usr/include/c++")
--      # Darwin SDKs in Xcode 12 or older do not include libc++, which prevents clang from finding libc++ when invoked
--      # from ClangImporter. This results in build errors. To workaround this, let's explicitly pass the path to libc++
--      # to clang.
--      message(WARNING "Building with an outdated Darwin SDK: libc++ missing from the ${SWIFT_HOST_VARIANT_SDK} SDK. Will use libc++ from the toolchain.")
--      get_filename_component(absolute_libcxx_path "${CMAKE_C_COMPILER}/../../include/c++/v1" REALPATH)
--      if (EXISTS "${absolute_libcxx_path}")
--        set(sdk_option ${sdk_option} "-Xcc" "-isystem" "-Xcc" "${absolute_libcxx_path}")
--      else()
--        message(ERROR "libc++ not found in the toolchain.")
--      endif()
--    endif()
-+    file(READ "$ENV{NIX_CC}/nix-support/libcxx-cxxflags" nix_libcxx_cxxflags)
-+    separate_arguments(nix_libcxx_cxxflags)
-+    foreach(nix_libcxx_cxxflag ${nix_libcxx_cxxflags})
-+      set(sdk_option ${sdk_option} "-Xcc" "${nix_libcxx_cxxflag}")
-+    endforeach()
-   elseif(BOOTSTRAPPING_MODE STREQUAL "CROSSCOMPILE")
-     set(sdk_option "-sdk" "${SWIFT_SDK_${SWIFT_HOST_VARIANT_SDK}_ARCH_${SWIFT_HOST_VARIANT_ARCH}_PATH}")
-     get_filename_component(swift_exec_bin_dir ${ALS_SWIFT_EXEC} DIRECTORY)
---- a/cmake/modules/SwiftConfigureSDK.cmake
-+++ b/cmake/modules/SwiftConfigureSDK.cmake
-@@ -270,6 +270,18 @@ macro(configure_sdk_darwin
-   # Add this to the list of known SDKs.
-   list(APPEND SWIFT_CONFIGURED_SDKS "${prefix}")
- 
-+  set(cxx_overlay_opt "")
-+  if("${prefix}" STREQUAL "OSX")
-+    file(READ "$ENV{NIX_CC}/nix-support/libcxx-cxxflags" nix_libcxx_cxxflags)
-+    separate_arguments(nix_libcxx_cxxflags)
-+    foreach(nix_libcxx_cxxflag ${nix_libcxx_cxxflags})
-+      set(cxx_overlay_opt ${cxx_overlay_opt} "-Xcc" "${nix_libcxx_cxxflag}")
-+    endforeach()
-+  endif()
-+  set(SWIFT_SDK_${prefix}_CXX_OVERLAY_SWIFT_COMPILE_FLAGS
-+      ${cxx_overlay_opt}
-+    CACHE STRING "Extra flags for compiling the C++ overlay")
-+
-   _report_sdk("${prefix}")
- endmacro()
- 
---- a/stdlib/public/Cxx/std/CMakeLists.txt
-+++ b/stdlib/public/Cxx/std/CMakeLists.txt
-@@ -145,6 +145,9 @@ add_swift_target_library(swiftstd STATIC NO_LINK_NAME IS_STDLIB
-     SWIFT_COMPILE_FLAGS_LINUX
-     ${SWIFT_SDK_LINUX_CXX_OVERLAY_SWIFT_COMPILE_FLAGS}
- 
-+    SWIFT_COMPILE_FLAGS_OSX
-+    ${SWIFT_SDK_OSX_CXX_OVERLAY_SWIFT_COMPILE_FLAGS}
-+
-     LINK_FLAGS "${SWIFT_RUNTIME_SWIFT_LINK_FLAGS}"
-     TARGET_SDKS ALL_APPLE_PLATFORMS LINUX
-     INSTALL_IN_COMPONENT compiler