diff --git a/pkgs/applications/virtualization/virtualbox/guest-additions/default.nix b/pkgs/applications/virtualization/virtualbox/guest-additions/default.nix index 96735730af05..30d15a2ef0c1 100644 --- a/pkgs/applications/virtualization/virtualbox/guest-additions/default.nix +++ b/pkgs/applications/virtualization/virtualbox/guest-additions/default.nix @@ -28,7 +28,7 @@ stdenv.mkDerivation { NIX_CFLAGS_COMPILE = "-Wno-error=incompatible-pointer-types"; - buildInputs = [ patchelf cdrkit makeWrapper dbus ]; + buildInputs = [ patchelf cdrkit makeWrapper dbus ] ++ kernel.moduleBuildDependencies; installPhase = '' mkdir -p $out diff --git a/pkgs/os-specific/linux/kernel/manual-config.nix b/pkgs/os-specific/linux/kernel/manual-config.nix index 8ffdf1e04e69..a00dd0b74332 100644 --- a/pkgs/os-specific/linux/kernel/manual-config.nix +++ b/pkgs/os-specific/linux/kernel/manual-config.nix @@ -49,6 +49,9 @@ let inherit (stdenv.lib) hasAttr getAttr optional optionalString optionalAttrs maintainers platforms; + # Dependencies that are required to build kernel modules + moduleBuildDependencies = stdenv.lib.optional (stdenv.lib.versionAtLeast version "4.14") libelf; + installkernel = writeTextFile { name = "installkernel"; executable=true; text = '' #!${stdenv.shell} -e mkdir -p $4 @@ -85,7 +88,7 @@ let (isModular || (config.isDisabled "FIRMWARE_IN_KERNEL")); in (optionalAttrs isModular { outputs = [ "out" "dev" ]; }) // { passthru = { - inherit version modDirVersion config kernelPatches configfile; + inherit version modDirVersion config kernelPatches configfile moduleBuildDependencies; }; inherit src; diff --git a/pkgs/os-specific/linux/spl/default.nix b/pkgs/os-specific/linux/spl/default.nix index ff93d515d4e9..059bd4284066 100644 --- a/pkgs/os-specific/linux/spl/default.nix +++ b/pkgs/os-specific/linux/spl/default.nix @@ -24,7 +24,7 @@ let patches = [ ./const.patch ./install_prefix.patch ]; - nativeBuildInputs = [ autoreconfHook ]; + nativeBuildInputs = [ autoreconfHook ] ++ optional (kernel != null) kernel.moduleBuildDependencies; hardeningDisable = [ "pic" ]; diff --git a/pkgs/os-specific/linux/sysdig/default.nix b/pkgs/os-specific/linux/sysdig/default.nix index 18d473e21941..71d7e9e1b785 100644 --- a/pkgs/os-specific/linux/sysdig/default.nix +++ b/pkgs/os-specific/linux/sysdig/default.nix @@ -14,7 +14,7 @@ stdenv.mkDerivation rec { buildInputs = [ cmake zlib luajit ncurses perl jsoncpp libb64 openssl curl jq gcc - ]; + ] ++ optional (kernel != null) kernel.moduleBuildDependencies; hardeningDisable = [ "pic" ]; diff --git a/pkgs/os-specific/linux/tp_smapi/default.nix b/pkgs/os-specific/linux/tp_smapi/default.nix index 4fc14a04eeab..c3adcc6cdba9 100644 --- a/pkgs/os-specific/linux/tp_smapi/default.nix +++ b/pkgs/os-specific/linux/tp_smapi/default.nix @@ -13,6 +13,8 @@ stdenv.mkDerivation rec { name = "tp-smapi-${version}"; }; + nativeBuildInputs = kernel.moduleBuildDependencies; + hardeningDisable = [ "pic" ]; makeFlags = [ diff --git a/pkgs/os-specific/linux/virtualbox/default.nix b/pkgs/os-specific/linux/virtualbox/default.nix index 593c4400b7f4..de0f02fd10f2 100644 --- a/pkgs/os-specific/linux/virtualbox/default.nix +++ b/pkgs/os-specific/linux/virtualbox/default.nix @@ -7,6 +7,8 @@ stdenv.mkDerivation { "fortify" "pic" "stackprotector" ]; + nativeBuildInputs = kernel.moduleBuildDependencies; + makeFlags = [ "-C ${kernel.dev}/lib/modules/${kernel.modDirVersion}/build" "INSTALL_MOD_PATH=$(out)" diff --git a/pkgs/os-specific/linux/zfs/default.nix b/pkgs/os-specific/linux/zfs/default.nix index 43f0d5691217..92a3b7fa23db 100644 --- a/pkgs/os-specific/linux/zfs/default.nix +++ b/pkgs/os-specific/linux/zfs/default.nix @@ -38,6 +38,8 @@ let patches = extraPatches; + nativeBuildInputs = [ autoreconfHook nukeReferences ] + ++ optional (kernel != null) kernel.moduleBuildDependencies; buildInputs = [ autoreconfHook nukeReferences ] ++ optionals buildKernel [ spl ] ++ optionals buildUser [ zlib libuuid python attr ];