From 6cd606f980ea70d9a026eaee036d18c436609dd7 Mon Sep 17 00:00:00 2001 From: Emily Date: Wed, 10 Sep 2025 17:23:24 +0100 Subject: [PATCH 1/2] spirv-llvm-translator: mark broken for unsupported LLVM versions This is friendlier for eval than a throw. --- pkgs/by-name/sp/spirv-llvm-translator/package.nix | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/pkgs/by-name/sp/spirv-llvm-translator/package.nix b/pkgs/by-name/sp/spirv-llvm-translator/package.nix index 7e5f850aa4d8..f6e7a42116d8 100644 --- a/pkgs/by-name/sp/spirv-llvm-translator/package.nix +++ b/pkgs/by-name/sp/spirv-llvm-translator/package.nix @@ -38,7 +38,12 @@ let }; }; - branch = versions."${llvmMajor}" or (throw "Incompatible LLVM version ${llvmMajor}"); + branch = + versions."${llvmMajor}" or { + version = "${llvmMajor}.x.x"; + rev = ""; + hash = ""; + }; in stdenv.mkDerivation { pname = "SPIRV-LLVM-Translator"; @@ -107,5 +112,6 @@ stdenv.mkDerivation { license = licenses.ncsa; platforms = platforms.unix; maintainers = with maintainers; [ gloaming ]; + broken = !(versions ? ${llvmMajor}); }; } From 6ac21d552ab5219ccb1d6c1f07ddb39640438648 Mon Sep 17 00:00:00 2001 From: Emily Date: Wed, 10 Sep 2025 17:23:24 +0100 Subject: [PATCH 2/2] llvmPackages.libclc: expose regardless of version MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit It doesn’t make sense to drop the attribute just because we don’t yet have a `spirv-llvm-translator` that can work with it yet, especially as they’ve been adding support for the native LLVM SPIR‐V backend. It will now be marked as broken transitively if `spirv-llvm-translator` is unavailable. --- pkgs/development/compilers/llvm/common/default.nix | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/pkgs/development/compilers/llvm/common/default.nix b/pkgs/development/compilers/llvm/common/default.nix index 5de10bf97f0e..102f41404b2b 100644 --- a/pkgs/development/compilers/llvm/common/default.nix +++ b/pkgs/development/compilers/llvm/common/default.nix @@ -381,14 +381,13 @@ let clangNoLibcxx = tools.clangWithLibcAndBasicRt; mlir = callPackage ./mlir { }; + + libclc = callPackage ./libclc { }; } // lib.optionalAttrs (lib.versionAtLeast metadata.release_version "19") { bolt = callPackage ./bolt { }; } - // lib.optionalAttrs (lib.versionOlder metadata.release_version "22") { - libclc = callPackage ./libclc { }; - } // lib.optionalAttrs (lib.versionAtLeast metadata.release_version "20") { flang = callPackage ./flang { mlir = tools.mlir;