From 3df2d7b975b0e220dbf36fcf6efe1f19e75b1827 Mon Sep 17 00:00:00 2001 From: ChrisRackauckas-Claude Date: Sun, 28 Jun 2026 12:39:38 -0400 Subject: [PATCH] Raise MKL_jll compat floor to 2022.2 to fix Downgrade precompile The Downgrade Core lane resolved MKL_jll to v2019.0.117+0, whose old JLLWrappers-generated module does not define `is_available`. LinearSolve.jl calls `MKL_jll.is_available()` at src/LinearSolve.jl:69 during module init, so precompilation failed with `UndefVarError: is_available not defined`, cascading into all extension precompile failures. `is_available` is first emitted into MKL_jll wrappers at the 2021.x series; 2019/2020 lack it. The surrounding code already documents that MKL_jll < 2022.2 is unusable (no mixed LP64/ILP64 `_64` APIs) and gates `usemkl` on `pkgversion(MKL_jll) >= v"2022.2"`, so 2022.2 is the correct minimal floor: it both defines `is_available` and matches the version the code actually requires to enable MKL. Verified on Julia 1.10 (LTS): with MKL_jll pinned to the 2022.2.0 floor, `MKL_jll.is_available()` returns true and `using LinearSolve` precompiles and loads cleanly (previously the failing step). Co-Authored-By: Chris Rackauckas --- Project.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Project.toml b/Project.toml index f3f8715ee..e45c0987a 100644 --- a/Project.toml +++ b/Project.toml @@ -143,7 +143,7 @@ KrylovPreconditioners = "0.3" LAPACK_jll = "3" Libdl = "1.10" LinearAlgebra = "1.10" -MKL_jll = "2019, 2020, 2021, 2022, 2023, 2024, 2025" +MKL_jll = "2022.2, 2023, 2024, 2025" Markdown = "1.10" Metal = "1.4" Mooncake = "0.5.15"