diff --git a/pkgs/os-specific/linux/dpdk/default.nix b/pkgs/os-specific/linux/dpdk/default.nix index fd45e83c26b..808feaff02c 100644 --- a/pkgs/os-specific/linux/dpdk/default.nix +++ b/pkgs/os-specific/linux/dpdk/default.nix @@ -1,7 +1,13 @@ -{ stdenv, kernel, fetchurl, pkgconfig, numactl }: +{ stdenv, lib, kernel, fetchurl, pkgconfig, numactl }: -stdenv.mkDerivation rec { - name = "dpdk-${version}-${kernel.version}"; +let + + kver = kernel.modDirVersion or null; + + mod = kernel != null; + +in stdenv.mkDerivation rec { + name = "dpdk-${version}" + lib.optionalString mod "-${kernel.version}"; version = "17.11.2"; src = fetchurl { @@ -9,35 +15,45 @@ stdenv.mkDerivation rec { sha256 = "19m5l3jkrns8r1zbjb6ry18w50ff36kbl5b5g6pfcp9p57sfisd2"; }; - nativeBuildInputs = [ pkgconfig ] ++ kernel.moduleBuildDependencies; - buildInputs = [ numactl ]; + nativeBuildInputs = [ pkgconfig ]; + buildInputs = [ numactl ] ++ lib.optional mod kernel.moduleBuildDependencies; - RTE_KERNELDIR = "${kernel.dev}/lib/modules/${kernel.modDirVersion}/build"; + RTE_KERNELDIR = if mod then "${kernel.dev}/lib/modules/${kver}/build" else "/var/empty"; RTE_TARGET = "x86_64-native-linuxapp-gcc"; # we need sse3 instructions to build NIX_CFLAGS_COMPILE = [ "-msse3" ]; - - enableParallelBuilding = true; - outputs = [ "out" "kmod" ]; - hardeningDisable = [ "pic" ]; + postPatch = lib.optionalString (!mod) '' + # Do not build kernel modules. + cat >>config/defconfig_$RTE_TARGET <