ecapture: support non-core btf mode (#418733)

Aleksana 70450f7d f60db648

Changed files
+25 -10
pkgs
by-name
ec
ecapture
top-level
+20 -10
pkgs/by-name/ec/ecapture/package.nix
···
{
buildGoModule,
fetchFromGitHub,
-
stdenv,
bpftools,
lib,
nspr,
···
bash,
zsh,
nix-update-script,
+
llvmPackages,
+
withNonBTF ? false,
+
kernel ? null,
}:
buildGoModule rec {
···
};
nativeBuildInputs = [
+
llvmPackages.libllvm
clang
fd
bpftools
···
--replace-fail '"errors"' ' '
'';
-
postConfigure = ''
-
sed -i '/git/d' Makefile
-
sed -i '/git/d' variables.mk
+
postConfigure =
+
''
+
sed -i '/git/d' Makefile
+
sed -i '/git/d' variables.mk
-
substituteInPlace Makefile \
-
--replace-fail '/bin/bash' '${lib.getExe bash}'
-
-
make ebpf
-
go-bindata -pkg assets -o "assets/ebpf_probe.go" $(find user/bytecode -name "*.o" -printf "./%p ")
-
'';
+
substituteInPlace Makefile \
+
--replace-fail '/bin/bash' '${lib.getExe bash}'
+
''
+
+ lib.optionalString withNonBTF ''
+
substituteInPlace variables.mk \
+
--replace-fail "-emit-llvm" "-emit-llvm -I${kernel.dev}/lib/modules/${kernel.modDirVersion}/build/include -Wno-error=implicit-function-declaration"
+
KERN_BUILD_PATH=${kernel.dev}/lib/modules/${kernel.modDirVersion}/build KERN_SRC_PATH=${kernel.dev}/lib/modules/${kernel.modDirVersion}/source make ebpf_noncore
+
''
+
+ ''
+
make ebpf
+
go-bindata -pkg assets -o "assets/ebpf_probe.go" $(find user/bytecode -name "*.o" -printf "./%p ")
+
'';
checkFlags =
let
+5
pkgs/top-level/linux-kernels.nix
···
dpdk-kmods = callPackage ../os-specific/linux/dpdk-kmods { };
+
ecapture = callPackage ../by-name/ec/ecapture/package.nix {
+
withNonBTF = true;
+
inherit kernel;
+
};
+
exfat-nofuse =
if lib.versionOlder kernel.version "5.8" then callPackage ../os-specific/linux/exfat { } else null;