{ stdenv, kernel, perl }: assert (!(kernel.features.grsecurity or false)); let baseBuildFlags = [ "INSTALL_HDR_PATH=$(out)" "headers_install" ]; in stdenv.mkDerivation { name = "linux-headers-${kernel.version}"; inherit (kernel) src patches; nativeBuildInputs = [ perl ]; buildFlags = [ "ARCH=${stdenv.platform.kernelArch}" ] ++ baseBuildFlags; crossAttrs = { inherit (kernel.crossDrv) src patches; buildFlags = [ "ARCH=${stdenv.cross.platform.kernelArch}" ] ++ baseBuildFlags; }; installPhase = '' find $out \( -name ..install.cmd -o -name .install \) -print0 | xargs -0 rm ''; # Headers shouldn't reference anything else allowedReferences = []; meta.platforms = stdenv.lib.platforms.linux; }