From 0188aff399f5c80a28df657c8c4b5495ed7b15e0 Mon Sep 17 00:00:00 2001 From: Doloro1978 Date: Tue, 21 Apr 2026 23:10:14 +0100 Subject: [PATCH] fix: it builds now --- pkgs/by-name/ll/llama-cpp-hexagon/package.nix | 5 +++- pkgs/by-name/ll/llama-cpp/package.nix | 28 +++++++++++++++---- 2 files changed, 27 insertions(+), 6 deletions(-) diff --git a/pkgs/by-name/ll/llama-cpp-hexagon/package.nix b/pkgs/by-name/ll/llama-cpp-hexagon/package.nix index d6cff05..8418479 100644 --- a/pkgs/by-name/ll/llama-cpp-hexagon/package.nix +++ b/pkgs/by-name/ll/llama-cpp-hexagon/package.nix @@ -1,3 +1,6 @@ { llama-cpp }: -llama-cpp.override { hexagonSupport = true; } +llama-cpp.override { + hexagonSupport = true; + blasSupport = false; +} diff --git a/pkgs/by-name/ll/llama-cpp/package.nix b/pkgs/by-name/ll/llama-cpp/package.nix index 41a1886..77769f7 100644 --- a/pkgs/by-name/ll/llama-cpp/package.nix +++ b/pkgs/by-name/ll/llama-cpp/package.nix @@ -36,6 +36,7 @@ llama-cpp, shaderc, vulkan-headers, + hexagon-sdk, vulkan-loader, ninja, }: @@ -79,16 +80,20 @@ let vulkan-headers vulkan-loader ]; + + hexagonBuildInputs = [ + hexagon-sdk + ]; in effectiveStdenv.mkDerivation (finalAttrs: { pname = "llama-cpp"; - version = "6981"; + version = "8871"; src = fetchFromGitHub { owner = "ggml-org"; repo = "llama.cpp"; tag = "b${finalAttrs.version}"; - hash = "sha256-0WtiHDlMeb+m2XcMwkPFY1mtwVTwRJUoxQSwzpiRbts="; + hash = "sha256-dSMomkkG3YFwXAcYTym6Z03u8ZAWFFio8jdQJPMJ/yg="; leaveDotGit = true; postFetch = '' git -C "$out" rev-parse --short HEAD > $out/COMMIT @@ -98,8 +103,10 @@ effectiveStdenv.mkDerivation (finalAttrs: { nativeBuildInputs = [ cmake + pkgs.clang ninja pkg-config + blas ] ++ optionals cudaSupport [ cudaPackages.cuda_nvcc @@ -112,7 +119,10 @@ effectiveStdenv.mkDerivation (finalAttrs: { ++ optionals rocmSupport rocmBuildInputs ++ optionals blasSupport [ blas ] ++ optionals vulkanSupport vulkanBuildInputs - ++ [ curl ]; + ++ optionals hexagonSupport hexagonBuildInputs + ++ [ + curl + ]; preConfigure = '' prependToVar cmakeFlags "-DLLAMA_BUILD_COMMIT:STRING=$(cat COMMIT)" @@ -153,9 +163,17 @@ effectiveStdenv.mkDerivation (finalAttrs: { (cmakeBool "CMAKE_SKIP_BUILD_RPATH" true) ] ++ optionals hexagonSupport [ + # (cmakeFeature "CMAKE_TOOLCHAIN_FILE" "${finalAttrs.src}/cmake/arm64-linux-clang.cmake") + (cmakeFeature "CMAKE_C_FLAGS" "-D__ARM_FEATURE_DOTPROD=1") + (cmakeFeature "CMAKE_CXX_FLAGS" "") + (cmakeBool "GGML_OPENMP" false) + (cmakeBool "GGML_LLAMAFILE" false) + (cmakeFeature "GGML_OPENCL" "OFF") + (cmakeFeature "PREBUILT_LIB_DIR" "linux_aarch64") (cmakeFeature "GGML_HEXAGON_FP32_QUANTIZE_GROUP_SIZE" "128") - (cmakeFeature "HEXAGON_SDK_ROOT" "${pkgs.hexagon-sdk}/opt/hexagon") - (cmakeFeature "HEXAGON_TOOLS_ROOT" "${pkgs.hexagon-sdk}/opt/hexagon/tools/HEXAGON_Tools/19.0.04") + (cmakeFeature "HEXAGON_SDK_ROOT" "${hexagon-sdk}/opt") + (cmakeFeature "HEXAGON_TOOLS_ROOT" "${hexagon-sdk}/opt/tools/HEXAGON_Tools/19.0.04") + (cmakeFeature "LLAMA_OPENSSL" "OFF") ]; # upstream plans on adding targets at the cmakelevel, remove those