From 5c6898b57bbf5f108954e9396acd0667e8599a5b Mon Sep 17 00:00:00 2001 From: HaeNoe Date: Sun, 1 Mar 2026 01:32:59 +0100 Subject: [PATCH] bpf-linker: 0.9.15 -> 0.10.3 - allow overriding `llvmPackages` for using `bpf-linker` with a version of rustc that uses a different llvm version --- pkgs/by-name/bp/bpf-linker/package.nix | 23 +++++++++++------------ 1 file changed, 11 insertions(+), 12 deletions(-) diff --git a/pkgs/by-name/bp/bpf-linker/package.nix b/pkgs/by-name/bp/bpf-linker/package.nix index 1dad9e62a5fb..166b7f8e8674 100644 --- a/pkgs/by-name/bp/bpf-linker/package.nix +++ b/pkgs/by-name/bp/bpf-linker/package.nix @@ -1,40 +1,42 @@ { lib, - stdenv, rustPlatform, fetchFromGitHub, btfdump, rustc, + # Override this if you are compiling your BPF programs with a version of + # rustc that uses a different LLVM version, for example when using a rust + # overlay. + llvmPackagesForLinker ? rustc.llvmPackages, zlib, libxml2, }: - rustPlatform.buildRustPackage rec { pname = "bpf-linker"; - version = "0.9.15"; + version = "0.10.3"; src = fetchFromGitHub { owner = "aya-rs"; repo = "bpf-linker"; tag = "v${version}"; - hash = "sha256-5HXYtAn6KaFXsiA3Nt0IwmFLOXBhZWYrD8cMZ8rZ1fk="; + hash = "sha256-QqJtiKQgU1rgiQOTw5kn0LhxiGrGz65y9wzMMpqEBz8="; }; - cargoHash = "sha256-coIcd6WjVQM/b51jwkG8It/wubXx6wuuPlzzelPFE38="; + cargoHash = "sha256-zA3R34QS3wAALEIo7k37BjDgyfzqg0n12Z0rZ/GTIIk="; buildNoDefaultFeatures = true; - buildFeatures = [ "llvm-${lib.versions.major rustc.llvm.version}" ]; - - nativeBuildInputs = [ rustc.llvm ]; + buildFeatures = [ "llvm-${lib.versions.major llvmPackagesForLinker.llvm.version}" ]; buildInputs = [ zlib libxml2 + (lib.getLib llvmPackagesForLinker.llvm) ]; nativeCheckInputs = [ btfdump - rustc.llvmPackages.clang.cc + llvmPackagesForLinker.clang.cc + llvmPackagesForLinker.llvm ]; meta = { @@ -46,8 +48,5 @@ rustPlatform.buildRustPackage rec { mit ]; maintainers = with lib.maintainers; [ nickcao ]; - # llvm-sys crate locates llvm by calling llvm-config - # which is not available when cross compiling - broken = stdenv.buildPlatform != stdenv.hostPlatform; }; }