From 7eb779860dafba203b048a56c0ee29ed5fb4303b Mon Sep 17 00:00:00 2001 From: Reno Dakota Date: Mon, 4 Nov 2024 10:13:20 -0800 Subject: [PATCH] llvmPackages_19.libclc: use unwrapped clang only The build requires an unwrapped clang due to passing in --arch flags. However, for c++ it doesn't pass in --arch and requires standard headers so which requires the wrapped compiler. --- pkgs/development/compilers/llvm/common/libclc.nix | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/pkgs/development/compilers/llvm/common/libclc.nix b/pkgs/development/compilers/llvm/common/libclc.nix index c24fc6e3b4c0..d20e6877019b 100644 --- a/pkgs/development/compilers/llvm/common/libclc.nix +++ b/pkgs/development/compilers/llvm/common/libclc.nix @@ -17,6 +17,14 @@ let spirv-llvm-translator = buildPackages.spirv-llvm-translator.override { inherit (buildLlvmTools) llvm; }; + + # The build requires an unwrapped clang but wrapped clang++ thus we need to + # split the unwrapped clang out to prevent the build from finding the + # unwrapped clang++ + clang-only = runCommand "clang-only" { } '' + mkdir -p "$out"/bin + ln -s "${lib.getExe' buildLlvmTools.clang.cc "clang"}" "$out"/bin + ''; in stdenv.mkDerivation rec { pname = "libclc"; @@ -78,7 +86,7 @@ stdenv.mkDerivation rec { python3 ] ++ lib.optional (lib.versionAtLeast release_version "19") [ - buildLlvmTools.clang.cc + clang-only buildLlvmTools.llvm spirv-llvm-translator ];