about summary refs log tree commit diff
path: root/pkgs/development/compilers/llvm/git
diff options
context:
space:
mode:
Diffstat (limited to 'pkgs/development/compilers/llvm/git')
-rw-r--r--pkgs/development/compilers/llvm/git/clang/gnu-install-dirs.patch71
-rw-r--r--pkgs/development/compilers/llvm/git/clang/purity.patch25
-rw-r--r--pkgs/development/compilers/llvm/git/compiler-rt/X86-support-extension.patch21
-rw-r--r--pkgs/development/compilers/llvm/git/compiler-rt/darwin-targetconditionals.patch71
-rw-r--r--pkgs/development/compilers/llvm/git/compiler-rt/normalize-var.patch16
-rw-r--r--pkgs/development/compilers/llvm/git/default.nix416
-rw-r--r--pkgs/development/compilers/llvm/git/libcxx/0001-darwin-10.12-mbstate_t-fix.patch31
-rw-r--r--pkgs/development/compilers/llvm/git/lld/gnu-install-dirs.patch15
-rw-r--r--pkgs/development/compilers/llvm/git/lldb/cpu_subtype_arm64e_replacement.patch12
-rw-r--r--pkgs/development/compilers/llvm/git/lldb/procfs.patch46
-rw-r--r--pkgs/development/compilers/llvm/git/llvm/gnu-install-dirs-polly.patch13
-rw-r--r--pkgs/development/compilers/llvm/git/llvm/gnu-install-dirs.patch137
-rw-r--r--pkgs/development/compilers/llvm/git/llvm/lit-shell-script-runner-set-dyld-library-path.patch12
-rw-r--r--pkgs/development/compilers/llvm/git/llvm/llvm-lit-cfg-add-libs-to-dylib-path.patch80
-rw-r--r--pkgs/development/compilers/llvm/git/llvm/polly-lit-cfg-add-libs-to-dylib-path.patch24
-rw-r--r--pkgs/development/compilers/llvm/git/openmp/fix-find-tool.patch17
-rw-r--r--pkgs/development/compilers/llvm/git/openmp/run-lit-directly.patch0
17 files changed, 0 insertions, 1007 deletions
diff --git a/pkgs/development/compilers/llvm/git/clang/gnu-install-dirs.patch b/pkgs/development/compilers/llvm/git/clang/gnu-install-dirs.patch
deleted file mode 100644
index b8c1c110cf22..000000000000
--- a/pkgs/development/compilers/llvm/git/clang/gnu-install-dirs.patch
+++ /dev/null
@@ -1,71 +0,0 @@
-diff --git a/cmake/modules/AddClang.cmake b/cmake/modules/AddClang.cmake
-index 75b0080f6..c895b884c 100644
---- a/cmake/modules/AddClang.cmake
-+++ b/cmake/modules/AddClang.cmake
-@@ -119,8 +119,8 @@ macro(add_clang_library name)
-         install(TARGETS ${lib}
-           COMPONENT ${lib}
-           ${export_to_clangtargets}
--          LIBRARY DESTINATION lib${LLVM_LIBDIR_SUFFIX}
--          ARCHIVE DESTINATION lib${LLVM_LIBDIR_SUFFIX}
-+          LIBRARY DESTINATION "${CMAKE_INSTALL_LIBDIR}${LLVM_LIBDIR_SUFFIX}"
-+          ARCHIVE DESTINATION "${CMAKE_INSTALL_LIBDIR}${LLVM_LIBDIR_SUFFIX}"
-           RUNTIME DESTINATION "${CMAKE_INSTALL_BINDIR}")
- 
-         if (NOT LLVM_ENABLE_IDE)
-diff --git a/lib/Headers/CMakeLists.txt b/lib/Headers/CMakeLists.txt
-index e6ae4e19e..5ef01aea2 100644
---- a/lib/Headers/CMakeLists.txt
-+++ b/lib/Headers/CMakeLists.txt
-@@ -337,6 +337,7 @@ set(llvm_libc_wrapper_files
- 
- include(GetClangResourceDir)
- get_clang_resource_dir(output_dir PREFIX ${LLVM_LIBRARY_OUTPUT_INTDIR}/.. SUBDIR include)
-+set(header_install_dir ${CMAKE_INSTALL_LIBDIR}${LLVM_LIBDIR_SUFFIX}/clang/${CLANG_VERSION_MAJOR}/include)
- set(out_files)
- set(generated_files)
- 
-diff --git a/tools/libclang/CMakeLists.txt b/tools/libclang/CMakeLists.txt
-index b5b6d2807..6b592d255 100644
---- a/tools/libclang/CMakeLists.txt
-+++ b/tools/libclang/CMakeLists.txt
-@@ -246,7 +246,7 @@ foreach(PythonVersion ${CLANG_PYTHON_BINDINGS_VERSIONS})
-           COMPONENT
-             libclang-python-bindings
-           DESTINATION
--            "lib${LLVM_LIBDIR_SUFFIX}/python${PythonVersion}/site-packages")
-+            "${CMAKE_INSTALL_LIBDIR}${LLVM_LIBDIR_SUFFIX}/python${PythonVersion}/site-packages")
- endforeach()
- if(NOT LLVM_ENABLE_IDE)
-   add_custom_target(libclang-python-bindings)
-diff --git a/tools/scan-build-py/CMakeLists.txt b/tools/scan-build-py/CMakeLists.txt
-index 3aca22c0b..3115353e3 100644
---- a/tools/scan-build-py/CMakeLists.txt
-+++ b/tools/scan-build-py/CMakeLists.txt
-@@ -88,7 +88,7 @@ foreach(lib ${LibScanbuild})
-                      DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/lib/libscanbuild/${lib})
-   list(APPEND Depends ${CMAKE_BINARY_DIR}/lib/libscanbuild/${lib})
-   install(FILES lib/libscanbuild/${lib}
--          DESTINATION lib${CLANG_LIBDIR_SUFFIX}/libscanbuild
-+          DESTINATION "${CMAKE_INSTALL_LIBDIR}/libscanbuild"
-           COMPONENT scan-build-py)
- endforeach()
- 
-@@ -106,7 +106,7 @@ foreach(resource ${LibScanbuildResources})
-                      DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/lib/libscanbuild/resources/${resource})
-   list(APPEND Depends ${CMAKE_BINARY_DIR}/lib/libscanbuild/resources/${resource})
-   install(FILES lib/libscanbuild/resources/${resource}
--          DESTINATION lib${CLANG_LIBDIR_SUFFIX}/libscanbuild/resources
-+          DESTINATION "${CMAKE_INSTALL_LIBDIR}/libscanbuild/resources"
-           COMPONENT scan-build-py)
- endforeach()
- 
-@@ -122,7 +122,7 @@ foreach(lib ${LibEar})
-                      DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/lib/libear/${lib})
-   list(APPEND Depends ${CMAKE_BINARY_DIR}/lib/libear/${lib})
-   install(FILES lib/libear/${lib}
--          DESTINATION lib${CLANG_LIBDIR_SUFFIX}/libear
-+          DESTINATION "${CMAKE_INSTALL_LIBDIR}/libear"
-           COMPONENT scan-build-py)
- endforeach()
- 
diff --git a/pkgs/development/compilers/llvm/git/clang/purity.patch b/pkgs/development/compilers/llvm/git/clang/purity.patch
deleted file mode 100644
index 5ce14a3479a0..000000000000
--- a/pkgs/development/compilers/llvm/git/clang/purity.patch
+++ /dev/null
@@ -1,25 +0,0 @@
-From 4add81bba40dcec62c4ea4481be8e35ac53e89d8 Mon Sep 17 00:00:00 2001
-From: Will Dietz <w@wdtz.org>
-Date: Thu, 18 May 2017 11:56:12 -0500
-Subject: [PATCH] "purity" patch for 5.0
-
----
- lib/Driver/ToolChains/Gnu.cpp | 3 ---
- 1 file changed, 3 deletions(-)
-
-diff --git a/lib/Driver/ToolChains/Gnu.cpp b/lib/Driver/ToolChains/Gnu.cpp
-index fe3c0191bb..c6a482bece 100644
---- a/lib/Driver/ToolChains/Gnu.cpp
-+++ b/lib/Driver/ToolChains/Gnu.cpp
-@@ -446,9 +446,6 @@ void tools::gnutools::Linker::ConstructJob(Compilation &C, const JobAction &JA,
-                            ToolChain.isPIEDefault(Args));
-       if (IsPIE)
-         CmdArgs.push_back("-pie");
--      CmdArgs.push_back("-dynamic-linker");
--      CmdArgs.push_back(Args.MakeArgString(Twine(D.DyldPrefix) +
--                                           ToolChain.getDynamicLinker(Args)));
-     }
-   }
- 
--- 
-2.11.0
diff --git a/pkgs/development/compilers/llvm/git/compiler-rt/X86-support-extension.patch b/pkgs/development/compilers/llvm/git/compiler-rt/X86-support-extension.patch
deleted file mode 100644
index 07013e5a6825..000000000000
--- a/pkgs/development/compilers/llvm/git/compiler-rt/X86-support-extension.patch
+++ /dev/null
@@ -1,21 +0,0 @@
-diff --git a/lib/builtins/CMakeLists.txt b/lib/builtins/CMakeLists.txt
-index 3a66dd9c3fb..7efc85d9f9f 100644
---- a/lib/builtins/CMakeLists.txt
-+++ b/lib/builtins/CMakeLists.txt
-@@ -348,4 +348,8 @@ if (NOT MSVC)
- 
-+  set(i486_SOURCES ${i386_SOURCES})
-+  set(i586_SOURCES ${i386_SOURCES})
-+  set(i686_SOURCES ${i386_SOURCES})
-+
-   if (WIN32)
-     set(i386_SOURCES
-       ${i386_SOURCES}
-@@ -723,6 +723,7 @@ else ()
-   endif()
- 
-   foreach (arch ${BUILTIN_SUPPORTED_ARCH})
-+      message("arch: ${arch}")
-     if (CAN_TARGET_${arch})
-       # For ARM archs, exclude any VFP builtins if VFP is not supported
-       if (${arch} MATCHES "^(arm|armhf|armv7|armv7s|armv7k|armv7m|armv7em)$")
diff --git a/pkgs/development/compilers/llvm/git/compiler-rt/darwin-targetconditionals.patch b/pkgs/development/compilers/llvm/git/compiler-rt/darwin-targetconditionals.patch
deleted file mode 100644
index 425dc2af01e7..000000000000
--- a/pkgs/development/compilers/llvm/git/compiler-rt/darwin-targetconditionals.patch
+++ /dev/null
@@ -1,71 +0,0 @@
-diff --git a/lib/sanitizer_common/sanitizer_mac.cpp b/lib/sanitizer_common/sanitizer_mac.cpp
---- a/lib/sanitizer_common/sanitizer_mac.cpp
-+++ b/lib/sanitizer_common/sanitizer_mac.cpp
-@@ -613,9 +613,15 @@ HandleSignalMode GetHandleSignalMode(int signum) {
- // Offset example:
- // XNU 17 -- macOS 10.13 -- iOS 11 -- tvOS 11 -- watchOS 4
- constexpr u16 GetOSMajorKernelOffset() {
--  if (TARGET_OS_OSX) return 4;
--  if (TARGET_OS_IOS || TARGET_OS_TV) return 6;
--  if (TARGET_OS_WATCH) return 13;
-+#if TARGET_OS_OSX
-+  return 4;
-+#endif
-+#if TARGET_OS_IOS || TARGET_OS_TV
-+  return 6;
-+#endif
-+#if TARGET_OS_WATCH
-+  return 13;
-+#endif
- }
- 
- using VersStr = char[64];
-@@ -627,13 +633,13 @@ static uptr ApproximateOSVersionViaKernelVersion(VersStr vers) {
-   u16 os_major = kernel_major - offset;
- 
-   const char *format = "%d.0";
--  if (TARGET_OS_OSX) {
--    if (os_major >= 16) {  // macOS 11+
--      os_major -= 5;
--    } else {  // macOS 10.15 and below
--      format = "10.%d";
--    }
-+#if TARGET_OS_OSX
-+  if (os_major >= 16) {  // macOS 11+
-+    os_major -= 5;
-+  } else {  // macOS 10.15 and below
-+    format = "10.%d";
-   }
-+#endif
-   return internal_snprintf(vers, sizeof(VersStr), format, os_major);
- }
- 
-@@ -681,15 +687,14 @@ void ParseVersion(const char *vers, u16 *major, u16 *minor) {
- // Aligned versions example:
- // macOS 10.15 -- iOS 13 -- tvOS 13 -- watchOS 6
- static void MapToMacos(u16 *major, u16 *minor) {
--  if (TARGET_OS_OSX)
--    return;
--
--  if (TARGET_OS_IOS || TARGET_OS_TV)
-+#if !TARGET_OS_OSX
-+#if TARGET_OS_IOS || TARGET_OS_TV
-     *major += 2;
--  else if (TARGET_OS_WATCH)
-+#elif TARGET_OS_WATCH
-     *major += 9;
--  else
-+#else
-     UNREACHABLE("unsupported platform");
-+#endif
- 
-   if (*major >= 16) {  // macOS 11+
-     *major -= 5;
-@@ -697,6 +702,7 @@ static void MapToMacos(u16 *major, u16 *minor) {
-     *minor = *major;
-     *major = 10;
-   }
-+#endif
- }
- 
- static MacosVersion GetMacosAlignedVersionInternal() {
diff --git a/pkgs/development/compilers/llvm/git/compiler-rt/normalize-var.patch b/pkgs/development/compilers/llvm/git/compiler-rt/normalize-var.patch
deleted file mode 100644
index 2b25fd4a0744..000000000000
--- a/pkgs/development/compilers/llvm/git/compiler-rt/normalize-var.patch
+++ /dev/null
@@ -1,16 +0,0 @@
-diff --git a/cmake/Modules/CompilerRTUtils.cmake b/cmake/Modules/CompilerRTUtils.cmake
-index 4c85551d7766..297d7a47c54b 100644
---- a/cmake/Modules/CompilerRTUtils.cmake
-+++ b/cmake/Modules/CompilerRTUtils.cmake
-@@ -328,8 +328,9 @@ macro(load_llvm_config)
-     endif()
-   endif()
- 
--  set(LLVM_LIBRARY_OUTPUT_INTDIR
--    ${LLVM_BINARY_DIR}/${CMAKE_CFG_INTDIR}/lib${LLVM_LIBDIR_SUFFIX})
-+  get_filename_component(LLVM_LIBRARY_OUTPUT_INTDIR
-+    ${LLVM_BINARY_DIR}/${CMAKE_CFG_INTDIR}/lib${LLVM_LIBDIR_SUFFIX}
-+    REALPATH)
- 
-   set(LLVM_MAIN_SRC_DIR "${LLVM_MAIN_SRC_DIR_DEFAULT}" CACHE PATH "Path to LLVM source tree")
-   message(STATUS "LLVM_MAIN_SRC_DIR: \"${LLVM_MAIN_SRC_DIR}\"")
diff --git a/pkgs/development/compilers/llvm/git/default.nix b/pkgs/development/compilers/llvm/git/default.nix
deleted file mode 100644
index 0e3a0eb7c696..000000000000
--- a/pkgs/development/compilers/llvm/git/default.nix
+++ /dev/null
@@ -1,416 +0,0 @@
-{ lowPrio, newScope, pkgs, lib, stdenv
-, preLibcCrossHeaders
-, substitute, substituteAll, fetchFromGitHub, fetchpatch
-, overrideCC, wrapCCWith, wrapBintoolsWith
-, buildLlvmTools # tools, but from the previous stage, for cross
-, targetLlvmLibraries # libraries, but from the next stage, for cross
-, targetLlvm
-# This is the default binutils, but with *this* version of LLD rather
-# than the default LLVM verion's, if LLD is the choice. We use these for
-# the `useLLVM` bootstrapping below.
-, bootBintoolsNoLibc ?
-    if stdenv.targetPlatform.linker == "lld"
-    then null
-    else pkgs.bintoolsNoLibc
-, bootBintools ?
-    if stdenv.targetPlatform.linker == "lld"
-    then null
-    else pkgs.bintools
-, darwin
-# LLVM release information; specify one of these but not both:
-, gitRelease ? {
-    version = "19.0.0-git";
-    rev = "78ee473784e5ef6f0b19ce4cb111fb6e4d23c6b2";
-    rev-version = "19.0.0-unstable-2024-06-12";
-    sha256 = "sha256-oLVMwWjo6Nt8ZsTnDTfoiM5U0+1lVIc1NO+4qBNYlzs=";
-}
-  # i.e.:
-  # {
-  #   version = /* i.e. "15.0.0" */;
-  #   rev = /* commit SHA */;
-  #   rev-version = /* human readable version; i.e. "15.0.0-unstable-2022-07-26" */;
-  #   sha256 = /* checksum for this release, can omit if specifying your own `monorepoSrc` */;
-  # }
-, officialRelease ? null
-  # i.e.:
-  # {
-  #   version = /* i.e. "15.0.0" */;
-  #   candidate = /* optional; if specified, should be: "rcN" */
-  #   sha256 = /* checksum for this release, can omit if specifying your own `monorepoSrc` */;
-  # }
-# By default, we'll try to fetch a release from `github:llvm/llvm-project`
-# corresponding to the `gitRelease` or `officialRelease` specified.
-#
-# You can provide your own LLVM source by specifying this arg but then it's up
-# to you to make sure that the LLVM repo given matches the release configuration
-# specified.
-, monorepoSrc ? null
-# Allows passthrough to packages via newScope. This makes it possible to
-# do `(llvmPackages.override { <someLlvmDependency> = bar; }).clang` and get
-# an llvmPackages whose packages are overridden in an internally consistent way.
-, ...
-}@args:
-
-assert
-  lib.assertMsg
-    (lib.xor
-      (gitRelease != null)
-      (officialRelease != null))
-    ("must specify `gitRelease` or `officialRelease`" +
-      (lib.optionalString (gitRelease != null) " — not both"));
-let
-  monorepoSrc' = monorepoSrc;
-in let
-
-  metadata = rec {
-    # Import releaseInfo separately to avoid infinite recursion
-    inherit (import ../common/common-let.nix { inherit lib gitRelease officialRelease; }) releaseInfo;
-    inherit (releaseInfo) release_version version;
-    inherit (import ../common/common-let.nix { inherit lib fetchFromGitHub gitRelease release_version officialRelease monorepoSrc'; }) llvm_meta monorepoSrc;
-  };
-
-  tools = lib.makeExtensible (tools: let
-    callPackage = newScope (tools // args // metadata);
-    major = lib.versions.major metadata.release_version;
-    mkExtraBuildCommands0 = cc: ''
-      rsrc="$out/resource-root"
-      mkdir "$rsrc"
-      ln -s "${cc.lib}/lib/clang/${major}/include" "$rsrc"
-      echo "-resource-dir=$rsrc" >> $out/nix-support/cc-cflags
-    '';
-    mkExtraBuildCommands = cc: mkExtraBuildCommands0 cc + ''
-      ln -s "${targetLlvmLibraries.compiler-rt.out}/lib" "$rsrc/lib"
-      ln -s "${targetLlvmLibraries.compiler-rt.out}/share" "$rsrc/share"
-    '';
-
-  bintoolsNoLibc' =
-    if bootBintoolsNoLibc == null
-    then tools.bintoolsNoLibc
-    else bootBintoolsNoLibc;
-  bintools' =
-    if bootBintools == null
-    then tools.bintools
-    else bootBintools;
-
-  in {
-
-    libllvm = callPackage ../common/llvm {
-      patches = [
-        ./llvm/gnu-install-dirs.patch
-
-        # Running the tests involves invoking binaries (like `opt`) that depend on
-        # the LLVM dylibs and reference them by absolute install path (i.e. their
-        # nix store path).
-        #
-        # Because we have not yet run the install phase (we're running these tests
-        # as part of `checkPhase` instead of `installCheckPhase`) these absolute
-        # paths do not exist yet; to work around this we point the loader (`ld` on
-        # unix, `dyld` on macOS) at the `lib` directory which will later become this
-        # package's `lib` output.
-        #
-        # Previously we would just set `LD_LIBRARY_PATH` to include the build `lib`
-        # dir but:
-        #   - this doesn't generalize well to other platforms; `lit` doesn't forward
-        #     `DYLD_LIBRARY_PATH` (macOS):
-        #     + https://github.com/llvm/llvm-project/blob/0d89963df354ee309c15f67dc47c8ab3cb5d0fb2/llvm/utils/lit/lit/TestingConfig.py#L26
-        #   - even if `lit` forwarded this env var, we actually cannot set
-        #     `DYLD_LIBRARY_PATH` in the child processes `lit` launches because
-        #     `DYLD_LIBRARY_PATH` (and `DYLD_FALLBACK_LIBRARY_PATH`) is cleared for
-        #     "protected processes" (i.e. the python interpreter that runs `lit`):
-        #     https://stackoverflow.com/a/35570229
-        #   - other LLVM subprojects deal with this issue by having their `lit`
-        #     configuration set these env vars for us; it makes sense to do the same
-        #     for LLVM:
-        #     + https://github.com/llvm/llvm-project/blob/4c106cfdf7cf7eec861ad3983a3dd9a9e8f3a8ae/clang-tools-extra/test/Unit/lit.cfg.py#L22-L31
-        #
-        # !!! TODO: look into upstreaming this patch
-        ./llvm/llvm-lit-cfg-add-libs-to-dylib-path.patch
-
-        # `lit` has a mode where it executes run lines as a shell script which is
-        # constructs; this is problematic for macOS because it means that there's
-        # another process in between `lit` and the binaries being tested. As noted
-        # above, this means that `DYLD_LIBRARY_PATH` is cleared which means that our
-        # tests fail with dyld errors.
-        #
-        # To get around this we patch `lit` to reintroduce `DYLD_LIBRARY_PATH`, when
-        # present in the test configuration.
-        #
-        # It's not clear to me why this isn't an issue for LLVM developers running
-        # on macOS (nothing about this _seems_ nix specific)..
-        ./llvm/lit-shell-script-runner-set-dyld-library-path.patch
-      ];
-      pollyPatches = [
-        ./llvm/gnu-install-dirs-polly.patch
-
-        # Just like the `llvm-lit-cfg` patch, but for `polly`.
-        ./llvm/polly-lit-cfg-add-libs-to-dylib-path.patch
-      ];
-    };
-
-    # `llvm` historically had the binaries.  When choosing an output explicitly,
-    # we need to reintroduce `outputSpecified` to get the expected behavior e.g. of lib.get*
-    llvm = tools.libllvm;
-
-    libclang = callPackage ../common/clang {
-      patches = [
-        ./clang/purity.patch
-        # https://reviews.llvm.org/D51899
-        ./clang/gnu-install-dirs.patch
-        ../common/clang/add-nostdlibinc-flag.patch
-        (substituteAll {
-          src = ../common/clang/clang-at-least-16-LLVMgold-path.patch;
-          libllvmLibdir = "${tools.libllvm.lib}/lib";
-        })
-      ];
-    };
-
-    clang-unwrapped = tools.libclang;
-
-    llvm-manpages = lowPrio (tools.libllvm.override {
-      enableManpages = true;
-      python3 = pkgs.python3;  # don't use python-boot
-    });
-
-    clang-manpages = lowPrio (tools.libclang.override {
-      enableManpages = true;
-      python3 = pkgs.python3;  # don't use python-boot
-    });
-
-    lldb-manpages = lowPrio (tools.lldb.override {
-      enableManpages = true;
-      python3 = pkgs.python3;  # don't use python-boot
-    });
-
-    # pick clang appropriate for package set we are targeting
-    clang =
-      /**/ if stdenv.targetPlatform.useLLVM or false then tools.clangUseLLVM
-      else if (pkgs.targetPackages.stdenv or stdenv).cc.isGNU then tools.libstdcxxClang
-      else tools.libcxxClang;
-
-    libstdcxxClang = wrapCCWith rec {
-      cc = tools.clang-unwrapped;
-      # libstdcxx is taken from gcc in an ad-hoc way in cc-wrapper.
-      libcxx = null;
-      extraPackages = [
-        targetLlvmLibraries.compiler-rt
-      ];
-      extraBuildCommands = mkExtraBuildCommands cc;
-    };
-
-    libcxxClang = wrapCCWith rec {
-      cc = tools.clang-unwrapped;
-      libcxx = targetLlvmLibraries.libcxx;
-      extraPackages = [
-        targetLlvmLibraries.compiler-rt
-      ];
-      extraBuildCommands = mkExtraBuildCommands cc;
-    };
-
-    lld = callPackage ../common/lld {
-      patches = [
-        ./lld/gnu-install-dirs.patch
-      ];
-    };
-
-    mlir = callPackage ../common/mlir {};
-
-    lldb = callPackage ../common/lldb.nix {
-      src = callPackage ({ runCommand }: runCommand "lldb-src-${metadata.version}" {} ''
-        mkdir -p "$out"
-        cp -r ${monorepoSrc}/cmake "$out"
-        cp -r ${monorepoSrc}/lldb "$out"
-      '') { };
-      patches =
-        [
-          # FIXME: do we need this? ./procfs.patch
-          ../common/lldb/gnu-install-dirs.patch
-        ]
-        # This is a stopgap solution if/until the macOS SDK used for x86_64 is
-        # updated.
-        #
-        # The older 10.12 SDK used on x86_64 as of this writing has a `mach/machine.h`
-        # header that does not define `CPU_SUBTYPE_ARM64E` so we replace the one use
-        # of this preprocessor symbol in `lldb` with its expansion.
-        #
-        # See here for some context:
-        # https://github.com/NixOS/nixpkgs/pull/194634#issuecomment-1272129132
-        ++ lib.optional (
-          stdenv.targetPlatform.isDarwin
-            && !stdenv.targetPlatform.isAarch64
-            && (lib.versionOlder darwin.apple_sdk.sdk.version "11.0")
-        ) ./lldb/cpu_subtype_arm64e_replacement.patch;
-    };
-
-    # Below, is the LLVM bootstrapping logic. It handles building a
-    # fully LLVM toolchain from scratch. No GCC toolchain should be
-    # pulled in. As a consequence, it is very quick to build different
-    # targets provided by LLVM and we can also build for what GCC
-    # doesn’t support like LLVM. Probably we should move to some other
-    # file.
-
-    bintools-unwrapped = callPackage ../common/bintools.nix { };
-
-    bintoolsNoLibc = wrapBintoolsWith {
-      bintools = tools.bintools-unwrapped;
-      libc = preLibcCrossHeaders;
-    };
-
-    bintools = wrapBintoolsWith {
-      bintools = tools.bintools-unwrapped;
-    };
-
-    clangUseLLVM = wrapCCWith rec {
-      cc = tools.clang-unwrapped;
-      libcxx = targetLlvmLibraries.libcxx;
-      bintools = bintools';
-      extraPackages = [
-        targetLlvmLibraries.compiler-rt
-      ] ++ lib.optionals (!stdenv.targetPlatform.isWasm) [
-        targetLlvmLibraries.libunwind
-      ];
-      extraBuildCommands = mkExtraBuildCommands cc;
-      nixSupport.cc-cflags =
-        [ "-rtlib=compiler-rt"
-          "-Wno-unused-command-line-argument"
-          "-B${targetLlvmLibraries.compiler-rt}/lib"
-        ]
-        ++ lib.optional (!stdenv.targetPlatform.isWasm) "--unwindlib=libunwind"
-        ++ lib.optional
-          (!stdenv.targetPlatform.isWasm && stdenv.targetPlatform.useLLVM or false)
-          "-lunwind"
-        ++ lib.optional stdenv.targetPlatform.isWasm "-fno-exceptions";
-      nixSupport.cc-ldflags = lib.optionals (!stdenv.targetPlatform.isWasm) [ "-L${targetLlvmLibraries.libunwind}/lib" ];
-    };
-
-    clangNoLibcxx = wrapCCWith rec {
-      cc = tools.clang-unwrapped;
-      libcxx = null;
-      bintools = bintools';
-      extraPackages = [
-        targetLlvmLibraries.compiler-rt
-      ];
-      extraBuildCommands = mkExtraBuildCommands cc;
-      nixSupport.cc-cflags =
-        [
-          "-rtlib=compiler-rt"
-          "-B${targetLlvmLibraries.compiler-rt}/lib"
-          "-nostdlib++"
-        ]
-        ++ lib.optional stdenv.targetPlatform.isWasm "-fno-exceptions";
-    };
-
-    clangNoLibc = wrapCCWith rec {
-      cc = tools.clang-unwrapped;
-      libcxx = null;
-      bintools = bintoolsNoLibc';
-      extraPackages = [
-        targetLlvmLibraries.compiler-rt
-      ];
-      extraBuildCommands = mkExtraBuildCommands cc;
-      nixSupport.cc-cflags =
-        [
-          "-rtlib=compiler-rt"
-          "-B${targetLlvmLibraries.compiler-rt}/lib"
-        ]
-        ++ lib.optional stdenv.targetPlatform.isWasm "-fno-exceptions";
-    };
-
-    clangNoCompilerRt = wrapCCWith rec {
-      cc = tools.clang-unwrapped;
-      libcxx = null;
-      bintools = bintoolsNoLibc';
-      extraPackages = [ ];
-      extraBuildCommands = mkExtraBuildCommands0 cc;
-      nixSupport.cc-cflags =
-        [
-          "-nostartfiles"
-        ]
-        ++ lib.optional stdenv.targetPlatform.isWasm "-fno-exceptions";
-    };
-
-    clangNoCompilerRtWithLibc = wrapCCWith (rec {
-      cc = tools.clang-unwrapped;
-      libcxx = null;
-      bintools = bintools';
-      extraPackages = [ ];
-      extraBuildCommands = mkExtraBuildCommands0 cc;
-    } // lib.optionalAttrs stdenv.targetPlatform.isWasm {
-      nixSupport.cc-cflags = [ "-fno-exceptions" ];
-    });
-
-    # Has to be in tools despite mostly being a library,
-    # because we use a native helper executable from a
-    # non-cross build in cross builds.
-    libclc = callPackage ../common/libclc.nix {};
-  });
-
-  libraries = lib.makeExtensible (libraries: let
-    callPackage = newScope (libraries // buildLlvmTools // args // metadata);
-  in {
-
-    compiler-rt-libc = callPackage ../common/compiler-rt {
-      patches = [
-        ./compiler-rt/X86-support-extension.patch # Add support for i486 i586 i686 by reusing i386 config
-        # ld-wrapper dislikes `-rpath-link //nix/store`, so we normalize away the
-        # extra `/`.
-        ./compiler-rt/normalize-var.patch
-        # See: https://github.com/NixOS/nixpkgs/pull/186575
-        ../common/compiler-rt/darwin-plistbuddy-workaround.patch
-        # See: https://github.com/NixOS/nixpkgs/pull/194634#discussion_r999829893
-        # ../common/compiler-rt/armv7l-15.patch
-      ];
-      stdenv = if stdenv.hostPlatform.useLLVM or false || (stdenv.hostPlatform.isDarwin && stdenv.hostPlatform.isStatic)
-               then overrideCC stdenv buildLlvmTools.clangNoCompilerRtWithLibc
-               else stdenv;
-    };
-
-    compiler-rt-no-libc = callPackage ../common/compiler-rt {
-      patches = [
-        ./compiler-rt/X86-support-extension.patch # Add support for i486 i586 i686 by reusing i386 config
-        # ld-wrapper dislikes `-rpath-link //nix/store`, so we normalize away the
-        # extra `/`.
-        ./compiler-rt/normalize-var.patch
-        # See: https://github.com/NixOS/nixpkgs/pull/186575
-        ../common/compiler-rt/darwin-plistbuddy-workaround.patch
-        # See: https://github.com/NixOS/nixpkgs/pull/194634#discussion_r999829893
-        # ../common/compiler-rt/armv7l-15.patch
-      ];
-      stdenv = if stdenv.hostPlatform.useLLVM or false
-               then overrideCC stdenv buildLlvmTools.clangNoCompilerRt
-               else stdenv;
-    };
-
-    # N.B. condition is safe because without useLLVM both are the same.
-    compiler-rt = if stdenv.hostPlatform.isAndroid || stdenv.hostPlatform.isDarwin
-      then libraries.compiler-rt-libc
-      else libraries.compiler-rt-no-libc;
-
-    stdenv = overrideCC stdenv buildLlvmTools.clang;
-
-    libcxxStdenv = overrideCC stdenv buildLlvmTools.libcxxClang;
-
-    # `libcxx` requires a fairly modern C++ compiler,
-    # so: we use the clang from this LLVM package set instead of the regular
-    # stdenv's compiler.
-    libcxx = callPackage ../common/libcxx {
-      patches = lib.optionals (stdenv.isDarwin && lib.versionOlder stdenv.hostPlatform.darwinMinVersion "10.13") [
-        # https://github.com/llvm/llvm-project/issues/64226
-        ./libcxx/0001-darwin-10.12-mbstate_t-fix.patch
-      ];
-      stdenv = overrideCC stdenv buildLlvmTools.clangNoLibcxx;
-    };
-
-    libunwind = callPackage ../common/libunwind {
-      stdenv = overrideCC stdenv buildLlvmTools.clangNoLibcxx;
-    };
-
-    openmp = callPackage ../common/openmp {
-      patches = [
-        ./openmp/fix-find-tool.patch
-        ./openmp/run-lit-directly.patch
-      ];
-    };
-  });
-  noExtend = extensible: lib.attrsets.removeAttrs extensible [ "extend" ];
-
-in { inherit tools libraries; inherit (metadata) release_version; } // (noExtend libraries) // (noExtend tools)
diff --git a/pkgs/development/compilers/llvm/git/libcxx/0001-darwin-10.12-mbstate_t-fix.patch b/pkgs/development/compilers/llvm/git/libcxx/0001-darwin-10.12-mbstate_t-fix.patch
deleted file mode 100644
index 29942f8ed03d..000000000000
--- a/pkgs/development/compilers/llvm/git/libcxx/0001-darwin-10.12-mbstate_t-fix.patch
+++ /dev/null
@@ -1,31 +0,0 @@
-From 9c1cb26c1dd3f92d1c1177e548107d2cd3c5e616 Mon Sep 17 00:00:00 2001
-From: annalee <150648636+a-n-n-a-l-e-e@users.noreply.github.com>
-Date: Fri, 23 Feb 2024 22:58:58 +0000
-Subject: [PATCH] darwin 10.12 mbstate_t fix
-
-https://github.com/llvm/llvm-project/issues/64226
-
-removes space from
-https://github.com/macports/macports-ports/raw/acd8acb171f1658596ed1cf25da48d5b932e2d19/lang/llvm-17/files/0042-mbstate_t-not-defined.patch
-so it applies cleanly
----
- libcxx/include/__mbstate_t.h | 3 +++
- 1 file changed, 3 insertions(+)
-
-diff --git a/libcxx/include/__mbstate_t.h b/libcxx/include/__mbstate_t.h
-index bfa6d61..5f51112 100644
---- a/libcxx/include/__mbstate_t.h
-+++ b/libcxx/include/__mbstate_t.h
-@@ -42,6 +42,9 @@
- #elif __has_include(<bits/types/mbstate_t.h>)
- #  include <bits/types/mbstate_t.h> // works on most Unixes
- #elif __has_include(<sys/_types/_mbstate_t.h>)
-+#  if __has_include(<machine/_types.h>)
-+#    include <machine/_types.h>
-+#  endif
- #  include <sys/_types/_mbstate_t.h> // works on Darwin
- #elif !defined(_LIBCPP_HAS_NO_WIDE_CHARACTERS) && __has_include_next(<wchar.h>)
- #  include_next <wchar.h> // fall back to the C standard provider of mbstate_t
--- 
-2.43.0
-
diff --git a/pkgs/development/compilers/llvm/git/lld/gnu-install-dirs.patch b/pkgs/development/compilers/llvm/git/lld/gnu-install-dirs.patch
deleted file mode 100644
index 6c73a240ab6d..000000000000
--- a/pkgs/development/compilers/llvm/git/lld/gnu-install-dirs.patch
+++ /dev/null
@@ -1,15 +0,0 @@
-diff --git a/cmake/modules/AddLLD.cmake b/cmake/modules/AddLLD.cmake
-index d3924f7243d4..42a7cd62281c 100644
---- a/cmake/modules/AddLLD.cmake
-+++ b/cmake/modules/AddLLD.cmake
-@@ -18,8 +18,8 @@ macro(add_lld_library name)
-     install(TARGETS ${name}
-       COMPONENT ${name}
-       ${export_to_lldtargets}
--      LIBRARY DESTINATION lib${LLVM_LIBDIR_SUFFIX}
--      ARCHIVE DESTINATION lib${LLVM_LIBDIR_SUFFIX}
-+      LIBRARY DESTINATION "${CMAKE_INSTALL_LIBDIR}${LLVM_LIBDIR_SUFFIX}"
-+      ARCHIVE DESTINATION "${CMAKE_INSTALL_LIBDIR}${LLVM_LIBDIR_SUFFIX}"
-       RUNTIME DESTINATION "${CMAKE_INSTALL_BINDIR}")
- 
-     if (${ARG_SHARED} AND NOT CMAKE_CONFIGURATION_TYPES)
diff --git a/pkgs/development/compilers/llvm/git/lldb/cpu_subtype_arm64e_replacement.patch b/pkgs/development/compilers/llvm/git/lldb/cpu_subtype_arm64e_replacement.patch
deleted file mode 100644
index 20d35c9f3ea9..000000000000
--- a/pkgs/development/compilers/llvm/git/lldb/cpu_subtype_arm64e_replacement.patch
+++ /dev/null
@@ -1,12 +0,0 @@
-diff --git a/source/Host/macosx/objcxx/HostInfoMacOSX.mm b/source/Host/macosx/objcxx/HostInfoMacOSX.mm
---- a/source/Host/macosx/objcxx/HostInfoMacOSX.mm
-+++ b/source/Host/macosx/objcxx/HostInfoMacOSX.mm
-@@ -233,7 +233,7 @@ void HostInfoMacOSX::ComputeHostArchitectureSupport(ArchSpec &arch_32,
-     len = sizeof(is_64_bit_capable);
-     ::sysctlbyname("hw.cpu64bit_capable", &is_64_bit_capable, &len, NULL, 0);
- 
--    if (cputype == CPU_TYPE_ARM64 && cpusubtype == CPU_SUBTYPE_ARM64E) {
-+    if (cputype == CPU_TYPE_ARM64 && cpusubtype == ((cpu_subtype_t) 2)) { // CPU_SUBTYPE_ARM64E is not available in the macOS 10.12 headers
-       // The arm64e architecture is a preview. Pretend the host architecture
-       // is arm64.
-       cpusubtype = CPU_SUBTYPE_ARM64_ALL;
diff --git a/pkgs/development/compilers/llvm/git/lldb/procfs.patch b/pkgs/development/compilers/llvm/git/lldb/procfs.patch
deleted file mode 100644
index 7b200e86505c..000000000000
--- a/pkgs/development/compilers/llvm/git/lldb/procfs.patch
+++ /dev/null
@@ -1,46 +0,0 @@
---- a/source/Plugins/Process/Linux/Procfs.h
-+++ b/source/Plugins/Process/Linux/Procfs.h
-@@ -10,6 +10,13 @@
- // sys/procfs.h on Android/Linux for all supported architectures.
- 
- #include <sys/ptrace.h>
-+#include <asm/ptrace.h>
-+
-+// on i686 preprocessor symbols with these register names are defined as
-+// numeric constants; these symbols clash with identifier names used in
-+// `llvm/Support/VirtualFileSystem.h` and `llvm/ADT/SmallVector.h`
-+#undef FS
-+#undef CS
- 
- #include "lldb/lldb-types.h"
- 
-@@ -17,23 +24,13 @@
- 
- #include <vector>
- 
--#ifdef __ANDROID__
--#if defined(__arm64__) || defined(__aarch64__)
--typedef unsigned long elf_greg_t;
--typedef elf_greg_t
--    elf_gregset_t[(sizeof(struct user_pt_regs) / sizeof(elf_greg_t))];
--typedef struct user_fpsimd_state elf_fpregset_t;
--#ifndef NT_FPREGSET
--#define NT_FPREGSET NT_PRFPREG
--#endif // NT_FPREGSET
--#elif defined(__mips__)
--#ifndef NT_FPREGSET
--#define NT_FPREGSET NT_PRFPREG
--#endif // NT_FPREGSET
--#endif
--#else // __ANDROID__
-+#if !defined(__GLIBC__) && defined(__powerpc__)
-+#define pt_regs musl_pt_regs
-+#include <sys/procfs.h>
-+#undef pt_regs
-+#else
- #include <sys/procfs.h>
--#endif // __ANDROID__
-+#endif
- 
- namespace lldb_private {
- namespace process_linux {
diff --git a/pkgs/development/compilers/llvm/git/llvm/gnu-install-dirs-polly.patch b/pkgs/development/compilers/llvm/git/llvm/gnu-install-dirs-polly.patch
deleted file mode 100644
index 6a359bdbefde..000000000000
--- a/pkgs/development/compilers/llvm/git/llvm/gnu-install-dirs-polly.patch
+++ /dev/null
@@ -1,13 +0,0 @@
---- a/tools/polly/cmake/polly_macros.cmake	2024-03-15 17:36:20.550893344 -0700
-+++ b/tools/polly/cmake/polly_macros.cmake	2024-03-15 17:37:06.277332960 -0700
-@@ -45,8 +45,8 @@
-     install(TARGETS ${name}
-       COMPONENT ${name}
-       EXPORT LLVMExports
--      LIBRARY DESTINATION lib${LLVM_LIBDIR_SUFFIX}
--      ARCHIVE DESTINATION lib${LLVM_LIBDIR_SUFFIX})
-+      LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}${LLVM_LIBDIR_SUFFIX}
-+      ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}${LLVM_LIBDIR_SUFFIX})
-     add_llvm_install_targets(install-${name}
-       COMPONENT ${name})
-   endif()
diff --git a/pkgs/development/compilers/llvm/git/llvm/gnu-install-dirs.patch b/pkgs/development/compilers/llvm/git/llvm/gnu-install-dirs.patch
deleted file mode 100644
index 8b89839490ba..000000000000
--- a/pkgs/development/compilers/llvm/git/llvm/gnu-install-dirs.patch
+++ /dev/null
@@ -1,137 +0,0 @@
-diff --git a/CMakeLists.txt b/CMakeLists.txt
-index 471817d68286..c51463304159 100644
---- a/CMakeLists.txt
-+++ b/CMakeLists.txt
-@@ -1010,7 +1010,7 @@ if (NOT TENSORFLOW_AOT_PATH STREQUAL "")
-   add_subdirectory(${TENSORFLOW_AOT_PATH}/xla_aot_runtime_src
-     ${CMAKE_ARCHIVE_OUTPUT_DIRECTORY}/tf_runtime)
-   install(TARGETS tf_xla_runtime EXPORT LLVMExports
--    ARCHIVE DESTINATION lib${LLVM_LIBDIR_SUFFIX} COMPONENT tf_xla_runtime)
-+    ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}${LLVM_LIBDIR_SUFFIX} COMPONENT tf_xla_runtime)
-   set_property(GLOBAL APPEND PROPERTY LLVM_EXPORTS tf_xla_runtime)
-   # Once we add more modules, we should handle this more automatically.
-   if (DEFINED LLVM_OVERRIDE_MODEL_HEADER_INLINERSIZEMODEL)
-diff --git a/cmake/modules/AddLLVM.cmake b/cmake/modules/AddLLVM.cmake
-index 230620c37027..dd16cab1835e 100644
---- a/cmake/modules/AddLLVM.cmake
-+++ b/cmake/modules/AddLLVM.cmake
-@@ -876,8 +876,8 @@ macro(add_llvm_library name)
-       get_target_export_arg(${name} LLVM export_to_llvmexports ${umbrella})
-       install(TARGETS ${name}
-               ${export_to_llvmexports}
--              LIBRARY DESTINATION lib${LLVM_LIBDIR_SUFFIX} COMPONENT ${name}
--              ARCHIVE DESTINATION lib${LLVM_LIBDIR_SUFFIX} COMPONENT ${name}
-+              LIBRARY DESTINATION "${CMAKE_INSTALL_LIBDIR}${LLVM_LIBDIR_SUFFIX}" COMPONENT ${name}
-+              ARCHIVE DESTINATION "${CMAKE_INSTALL_LIBDIR}${LLVM_LIBDIR_SUFFIX}" COMPONENT ${name}
-               RUNTIME DESTINATION "${CMAKE_INSTALL_BINDIR}" COMPONENT ${name})
- 
-       if (NOT LLVM_ENABLE_IDE)
-@@ -2069,7 +2069,7 @@ function(llvm_install_library_symlink name dest type)
-     set(LLVM_LINK_OR_COPY copy)
-   endif()
- 
--  set(output_dir lib${LLVM_LIBDIR_SUFFIX})
-+  set(output_dir ${CMAKE_INSTALL_FULL_LIBDIR}${LLVM_LIBDIR_SUFFIX})
-   if(WIN32 AND "${type}" STREQUAL "SHARED")
-     set(output_dir "${CMAKE_INSTALL_BINDIR}")
-   endif()
-@@ -2344,16 +2344,37 @@ function(llvm_setup_rpath name)
- 
-   if (APPLE)
-     set(_install_name_dir INSTALL_NAME_DIR "@rpath")
--    set(_install_rpath "@loader_path/../lib${LLVM_LIBDIR_SUFFIX}" ${extra_libdir})
-+    set(_install_rpath ${extra_libdir})
-   elseif(${CMAKE_SYSTEM_NAME} MATCHES "AIX" AND BUILD_SHARED_LIBS)
-     # $ORIGIN is not interpreted at link time by aix ld.
-     # Since BUILD_SHARED_LIBS is only recommended for use by developers,
-     # hardcode the rpath to build/install lib dir first in this mode.
-     # FIXME: update this when there is better solution.
--    set(_install_rpath "${LLVM_LIBRARY_OUTPUT_INTDIR}" "${CMAKE_INSTALL_PREFIX}/lib${LLVM_LIBDIR_SUFFIX}" ${extra_libdir})
-+    set(_install_rpath "${LLVM_LIBRARY_OUTPUT_INTDIR}" "${CMAKE_INSTALL_FULL_LIBDIR}${LLVM_LIBDIR_SUFFIX}" ${extra_libdir})
-   elseif(UNIX)
--    set(_build_rpath "\$ORIGIN/../lib${LLVM_LIBDIR_SUFFIX}" ${extra_libdir})
--    set(_install_rpath "\$ORIGIN/../lib${LLVM_LIBDIR_SUFFIX}")
-+    # Note that we add `extra_libdir` (aka `LLVM_LIBRARY_DIR` in our case) back
-+    # to `_install_rpath` here.
-+    #
-+    # In nixpkgs we do not build and install LLVM alongside rdeps of LLVM (i.e.
-+    # clang); instead LLVM is its own package and thus lands at its own nix
-+    # store path. This makes it so that the default relative rpath (`../lib/`)
-+    # does not point at the LLVM shared objects.
-+    #
-+    # More discussion here:
-+    #   - https://github.com/NixOS/nixpkgs/pull/235624#discussion_r1220150329
-+    #   - https://reviews.llvm.org/D146918 (16.0.5+)
-+    #
-+    # Note that we leave `extra_libdir` in `_build_rpath`: without FHS there is
-+    # no potential that this will result in us pulling in the "wrong" LLVM.
-+    # Adding this to the build rpath means we aren't forced to use
-+    # `installCheckPhase` instead of `checkPhase` (i.e. binaries in the build
-+    # dir, pre-install, will have the right rpath for LLVM).
-+    #
-+    # As noted in the differential above, an alternative solution is to have
-+    # all rdeps of nixpkgs' LLVM (that use the AddLLVM.cmake machinery) set
-+    # `CMAKE_INSTALL_RPATH`.
-+    set(_build_rpath "\$ORIGIN/../lib${LLVM_LIBDIR_SUFFIX}" ${extra_libdir})
-+    set(_install_rpath ${extra_libdir})
-     if(${CMAKE_SYSTEM_NAME} MATCHES "(FreeBSD|DragonFly)")
-       set_property(TARGET ${name} APPEND_STRING PROPERTY
-                    LINK_FLAGS " -Wl,-z,origin ")
-diff --git a/cmake/modules/AddOCaml.cmake b/cmake/modules/AddOCaml.cmake
-index 891c9e6d618c..8d963f3b0069 100644
---- a/cmake/modules/AddOCaml.cmake
-+++ b/cmake/modules/AddOCaml.cmake
-@@ -147,9 +147,9 @@ function(add_ocaml_library name)
-   endforeach()
- 
-   if( APPLE )
--    set(ocaml_rpath "@executable_path/../../../lib${LLVM_LIBDIR_SUFFIX}")
-+    set(ocaml_rpath ${LLVM_LIBRARY_DIR})
-   elseif( UNIX )
--    set(ocaml_rpath "\\$ORIGIN/../../../lib${LLVM_LIBDIR_SUFFIX}")
-+    set(ocaml_rpath ${LLVM_LIBRARY_DIR})
-   endif()
-   list(APPEND ocaml_flags "-ldopt" "-Wl,-rpath,${ocaml_rpath}")
- 
-diff --git a/cmake/modules/CMakeLists.txt b/cmake/modules/CMakeLists.txt
-index d99af79aa38e..21e794224b99 100644
---- a/cmake/modules/CMakeLists.txt
-+++ b/cmake/modules/CMakeLists.txt
-@@ -127,7 +127,7 @@ set(LLVM_CONFIG_INCLUDE_DIRS
-   )
- list(REMOVE_DUPLICATES LLVM_CONFIG_INCLUDE_DIRS)
- 
--extend_path(LLVM_CONFIG_LIBRARY_DIR "\${LLVM_INSTALL_PREFIX}" "lib\${LLVM_LIBDIR_SUFFIX}")
-+extend_path(LLVM_CONFIG_LIBRARY_DIR "\${LLVM_INSTALL_PREFIX}" "${CMAKE_INSTALL_LIBDIR}\${LLVM_LIBDIR_SUFFIX}")
- set(LLVM_CONFIG_LIBRARY_DIRS
-   "${LLVM_CONFIG_LIBRARY_DIR}"
-   # FIXME: Should there be other entries here?
-diff --git a/tools/llvm-config/BuildVariables.inc.in b/tools/llvm-config/BuildVariables.inc.in
-index 370005cd8d7d..7e790bc52111 100644
---- a/tools/llvm-config/BuildVariables.inc.in
-+++ b/tools/llvm-config/BuildVariables.inc.in
-@@ -23,6 +23,7 @@
- #define LLVM_CXXFLAGS "@LLVM_CXXFLAGS@"
- #define LLVM_BUILDMODE "@LLVM_BUILDMODE@"
- #define LLVM_LIBDIR_SUFFIX "@LLVM_LIBDIR_SUFFIX@"
-+#define LLVM_INSTALL_LIBDIR "@CMAKE_INSTALL_LIBDIR@"
- #define LLVM_INSTALL_INCLUDEDIR "@CMAKE_INSTALL_INCLUDEDIR@"
- #define LLVM_INSTALL_PACKAGE_DIR "@LLVM_INSTALL_PACKAGE_DIR@"
- #define LLVM_TARGETS_BUILT "@LLVM_TARGETS_BUILT@"
-diff --git a/tools/llvm-config/llvm-config.cpp b/tools/llvm-config/llvm-config.cpp
-index e86eb2b44b10..f63e207e792e 100644
---- a/tools/llvm-config/llvm-config.cpp
-+++ b/tools/llvm-config/llvm-config.cpp
-@@ -366,7 +366,11 @@ int main(int argc, char **argv) {
-       sys::fs::make_absolute(ActivePrefix, Path);
-       ActiveBinDir = std::string(Path.str());
-     }
--    ActiveLibDir = ActivePrefix + "/lib" + LLVM_LIBDIR_SUFFIX;
-+    {
-+      SmallString<256> Path(LLVM_INSTALL_LIBDIR LLVM_LIBDIR_SUFFIX);
-+      sys::fs::make_absolute(ActivePrefix, Path);
-+      ActiveLibDir = std::string(Path.str());
-+    }
-     {
-       SmallString<256> Path(LLVM_INSTALL_PACKAGE_DIR);
-       sys::fs::make_absolute(ActivePrefix, Path);
diff --git a/pkgs/development/compilers/llvm/git/llvm/lit-shell-script-runner-set-dyld-library-path.patch b/pkgs/development/compilers/llvm/git/llvm/lit-shell-script-runner-set-dyld-library-path.patch
deleted file mode 100644
index e4f049f4b177..000000000000
--- a/pkgs/development/compilers/llvm/git/llvm/lit-shell-script-runner-set-dyld-library-path.patch
+++ /dev/null
@@ -1,12 +0,0 @@
---- a/utils/lit/lit/TestRunner.py	2024-03-15 17:27:53.170780798 -0700
-+++ b/utils/lit/lit/TestRunner.py	2024-03-15 17:28:43.277447791 -0700
-@@ -1183,6 +1183,9 @@
-         f.write("@echo on\n")
-         f.write("\n@if %ERRORLEVEL% NEQ 0 EXIT\n".join(commands))
-     else:
-+        if "DYLD_LIBRARY_PATH" in test.config.environment:
-+            f.write(f'export DYLD_LIBRARY_PATH="{test.config.environment["DYLD_LIBRARY_PATH"]}"\n')
-+
-         for i, ln in enumerate(commands):
-             match = re.fullmatch(kPdbgRegex, ln)
-             if match:
diff --git a/pkgs/development/compilers/llvm/git/llvm/llvm-lit-cfg-add-libs-to-dylib-path.patch b/pkgs/development/compilers/llvm/git/llvm/llvm-lit-cfg-add-libs-to-dylib-path.patch
deleted file mode 100644
index d4ccb2ae9822..000000000000
--- a/pkgs/development/compilers/llvm/git/llvm/llvm-lit-cfg-add-libs-to-dylib-path.patch
+++ /dev/null
@@ -1,80 +0,0 @@
-diff --git a/test/Unit/lit.cfg.py b/test/Unit/lit.cfg.py
-index 81e8dc04acea..479ff95681e2 100644
---- a/test/Unit/lit.cfg.py
-+++ b/test/Unit/lit.cfg.py
-@@ -3,6 +3,7 @@
- # Configuration file for the 'lit' test runner.
- 
- import os
-+import platform
- import subprocess
- 
- import lit.formats
-@@ -55,3 +56,26 @@ if sys.platform in ["win32", "cygwin"] and os.path.isdir(config.shlibdir):
- # Win32 may use %SYSTEMDRIVE% during file system shell operations, so propogate.
- if sys.platform == "win32" and "SYSTEMDRIVE" in os.environ:
-     config.environment["SYSTEMDRIVE"] = os.environ["SYSTEMDRIVE"]
-+
-+# Add the LLVM dynamic libs to the platform-specific loader search path env var:
-+#
-+# TODO: this is copied from `clang`'s `lit.cfg.py`; should unify..
-+def find_shlibpath_var():
-+    if platform.system() in ["Linux", "FreeBSD", "NetBSD", "OpenBSD", "SunOS"]:
-+        yield "LD_LIBRARY_PATH"
-+    elif platform.system() == "Darwin":
-+        yield "DYLD_LIBRARY_PATH"
-+    elif platform.system() == "Windows":
-+        yield "PATH"
-+    elif platform.system() == "AIX":
-+        yield "LIBPATH"
-+
-+for shlibpath_var in find_shlibpath_var():
-+    shlibpath = os.path.pathsep.join(
-+        (config.shlibdir,
-+         config.environment.get(shlibpath_var, '')))
-+    config.environment[shlibpath_var] = shlibpath
-+    break
-+else:
-+    lit_config.warning("unable to inject shared library path on '{}'"
-+                       .format(platform.system()))
-diff --git a/test/lit.cfg.py b/test/lit.cfg.py
-index 75a38b4c5dad..856fc75c9d74 100644
---- a/test/lit.cfg.py
-+++ b/test/lit.cfg.py
-@@ -42,6 +42,26 @@ llvm_config.with_environment("PATH", config.llvm_tools_dir, append_path=True)
- llvm_config.with_system_environment(
-     ["HOME", "INCLUDE", "LIB", "TMP", "TEMP"])
- 
-+# Add the LLVM dynamic libs to the platform-specific loader search path env var:
-+#
-+# TODO: this is copied from `clang`'s `lit.cfg.py`; should unify..
-+def find_shlibpath_var():
-+    if platform.system() in ["Linux", "FreeBSD", "NetBSD", "OpenBSD", "SunOS"]:
-+        yield "LD_LIBRARY_PATH"
-+    elif platform.system() == "Darwin":
-+        yield "DYLD_LIBRARY_PATH"
-+    elif platform.system() == "Windows":
-+        yield "PATH"
-+    elif platform.system() == "AIX":
-+        yield "LIBPATH"
-+
-+for shlibpath_var in find_shlibpath_var():
-+    shlibpath = config.llvm_shlib_dir
-+    llvm_config.with_environment(shlibpath_var, shlibpath, append_path = True)
-+    break
-+else:
-+    lit_config.warning("unable to inject shared library path on '{}'"
-+                       .format(platform.system()))
- 
- # Set up OCAMLPATH to include newly built OCaml libraries.
- top_ocaml_lib = os.path.join(config.llvm_lib_dir, "ocaml")
-@@ -318,7 +338,7 @@ def have_cxx_shared_library():
- 
-     try:
-         readobj_cmd = subprocess.Popen(
--            [readobj_exe, "--needed-libs", readobj_exe], stdout=subprocess.PIPE
-+            [readobj_exe, "--needed-libs", readobj_exe], stdout=subprocess.PIPE, env=config.environment
-         )
-     except OSError:
-         print("could not exec llvm-readobj")
-
diff --git a/pkgs/development/compilers/llvm/git/llvm/polly-lit-cfg-add-libs-to-dylib-path.patch b/pkgs/development/compilers/llvm/git/llvm/polly-lit-cfg-add-libs-to-dylib-path.patch
deleted file mode 100644
index 1354ad267314..000000000000
--- a/pkgs/development/compilers/llvm/git/llvm/polly-lit-cfg-add-libs-to-dylib-path.patch
+++ /dev/null
@@ -1,24 +0,0 @@
-diff --git a/tools/polly/test/lit.cfg b/tools/polly/test/lit.cfg
-index 41e3a589c61e..09f3b17498b0 100644
---- a/tools/polly/test/lit.cfg
-+++ b/tools/polly/test/lit.cfg
-@@ -36,9 +36,17 @@ base_paths = [config.llvm_tools_dir, config.environment['PATH']]
- path = os.path.pathsep.join(base_paths + config.extra_paths)
- config.environment['PATH'] = path
- 
-+# (Copied from polly/test/Unit/lit.cfg)
-+if platform.system() == 'Darwin':
-+    shlibpath_var = 'DYLD_LIBRARY_PATH'
-+elif platform.system() == 'Windows':
-+    shlibpath_var = 'PATH'
-+else:
-+    shlibpath_var = 'LD_LIBRARY_PATH'
-+
- path = os.path.pathsep.join((config.llvm_libs_dir,
--                              config.environment.get('LD_LIBRARY_PATH','')))
--config.environment['LD_LIBRARY_PATH'] = path
-+                              config.environment.get(shlibpath_var,'')))
-+config.environment[shlibpath_var] = path
- 
- llvm_config.use_default_substitutions()
- 
diff --git a/pkgs/development/compilers/llvm/git/openmp/fix-find-tool.patch b/pkgs/development/compilers/llvm/git/openmp/fix-find-tool.patch
deleted file mode 100644
index b7f51196f7ba..000000000000
--- a/pkgs/development/compilers/llvm/git/openmp/fix-find-tool.patch
+++ /dev/null
@@ -1,17 +0,0 @@
-diff --git a/libomptarget/DeviceRTL/CMakeLists.txt b/libomptarget/DeviceRTL/CMakeLists.txt
-index 630947abec7e..9f032dc7bd3f 100644
---- a/libomptarget/DeviceRTL/CMakeLists.txt
-+++ b/libomptarget/DeviceRTL/CMakeLists.txt
-@@ -27,10 +27,10 @@ endif()
- if (LLVM_DIR)
-   # Builds that use pre-installed LLVM have LLVM_DIR set.
-   # A standalone or LLVM_ENABLE_RUNTIMES=openmp build takes this route
--  find_program(CLANG_TOOL clang PATHS ${LLVM_TOOLS_BINARY_DIR} NO_DEFAULT_PATH)
-+  find_program(CLANG_TOOL clang PATHS ${LLVM_TOOLS_BINARY_DIR})
-   find_program(PACKAGER_TOOL clang-offload-packager PATHS ${LLVM_TOOLS_BINARY_DIR} NO_DEFAULT_PATH)
-   find_program(LINK_TOOL llvm-link PATHS ${LLVM_TOOLS_BINARY_DIR} NO_DEFAULT_PATH)
--  find_program(OPT_TOOL opt PATHS ${LLVM_TOOLS_BINARY_DIR} NO_DEFAULT_PATH)
-+  find_program(OPT_TOOL opt PATHS ${LLVM_TOOLS_BINARY_DIR})
-   if ((NOT CLANG_TOOL) OR (NOT LINK_TOOL) OR (NOT OPT_TOOL) OR (NOT PACKAGER_TOOL))
-     libomptarget_say("Not building DeviceRTL. Missing clang: ${CLANG_TOOL}, llvm-link: ${LINK_TOOL}, opt: ${OPT_TOOL}, or clang-offload-packager: ${PACKAGER_TOOL}")
-     return()
diff --git a/pkgs/development/compilers/llvm/git/openmp/run-lit-directly.patch b/pkgs/development/compilers/llvm/git/openmp/run-lit-directly.patch
deleted file mode 100644
index e69de29bb2d1..000000000000
--- a/pkgs/development/compilers/llvm/git/openmp/run-lit-directly.patch
+++ /dev/null