From febe4776287fd81b9dc0fd88a8bcb686765c8a6b Mon Sep 17 00:00:00 2001 From: Alyssa Ross Date: Sun, 21 May 2023 08:45:12 +0000 Subject: linux: default stdenv.hostPlatform.linux-kernel With this change, we can do a reasonable default build of Linux for configurations that do not have a corresponding platforms.nix entry, and where the user has not explicitly specified the linux-kernel values. This allows us to do best effort builds for obscure architectures (I tested a build for s390x). The platformName binding has not been used since 70cb7050f5c ("Trying to make the linux kernels also cross-build."), so I removed it. --- pkgs/os-specific/linux/kernel/generic.nix | 9 ++++----- pkgs/os-specific/linux/kernel/manual-config.nix | 9 +++++---- 2 files changed, 9 insertions(+), 9 deletions(-) diff --git a/pkgs/os-specific/linux/kernel/generic.nix b/pkgs/os-specific/linux/kernel/generic.nix index 56d89f67c64..04f6cfc70ad 100644 --- a/pkgs/os-specific/linux/kernel/generic.nix +++ b/pkgs/os-specific/linux/kernel/generic.nix @@ -47,7 +47,7 @@ # symbolic name and `patch' is the actual patch. The patch may # optionally be compressed with gzip or bzip2. kernelPatches ? [] -, ignoreConfigErrors ? stdenv.hostPlatform.linux-kernel.name != "pc" +, ignoreConfigErrors ? stdenv.hostPlatform.linux-kernel.name or "" != "pc" , extraMeta ? {} , isZen ? false @@ -55,7 +55,7 @@ , isHardened ? false # easy overrides to stdenv.hostPlatform.linux-kernel members -, autoModules ? stdenv.hostPlatform.linux-kernel.autoModules +, autoModules ? stdenv.hostPlatform.linux-kernel.autoModules or true , preferBuiltin ? stdenv.hostPlatform.linux-kernel.preferBuiltin or false , kernelArch ? stdenv.hostPlatform.linuxArch , kernelTests ? [] @@ -128,11 +128,10 @@ let ++ lib.optionals (lib.versionAtLeast version "4.16") [ bison flex ] ++ lib.optional (lib.versionAtLeast version "5.2") pahole; - platformName = stdenv.hostPlatform.linux-kernel.name; # e.g. "defconfig" - kernelBaseConfig = if defconfig != null then defconfig else stdenv.hostPlatform.linux-kernel.baseConfig; + kernelBaseConfig = if defconfig != null then defconfig else stdenv.hostPlatform.linux-kernel.baseConfig or "defconfig"; # e.g. "bzImage" - kernelTarget = stdenv.hostPlatform.linux-kernel.target; + kernelTarget = stdenv.hostPlatform.linux-kernel.target or "vmlinux"; makeFlags = lib.optionals (stdenv.hostPlatform.linux-kernel ? makeFlags) stdenv.hostPlatform.linux-kernel.makeFlags ++ extraMakeFlags; diff --git a/pkgs/os-specific/linux/kernel/manual-config.nix b/pkgs/os-specific/linux/kernel/manual-config.nix index 4a623fda9be..9908d22c411 100644 --- a/pkgs/os-specific/linux/kernel/manual-config.nix +++ b/pkgs/os-specific/linux/kernel/manual-config.nix @@ -87,7 +87,8 @@ let isModular = config.isYes "MODULES"; - kernelConf = stdenv.hostPlatform.linux-kernel; + kernelConf = stdenv.hostPlatform.linux-kernel; + target = kernelConf.target or "vmlinux"; buildDTBs = kernelConf.DTB or false; in @@ -101,7 +102,7 @@ stdenv.mkDerivation ({ depsBuildBuild = [ buildPackages.stdenv.cc ]; nativeBuildInputs = [ perl bc nettools openssl rsync gmp libmpc mpfr zstd python3Minimal ] - ++ optional (kernelConf.target == "uImage") buildPackages.ubootTools + ++ optional (target == "uImage") buildPackages.ubootTools ++ optional (lib.versionOlder version "5.8") libelf ++ optionals (lib.versionAtLeast version "4.16") [ bison flex ] ++ optionals (lib.versionAtLeast version "5.2") [ cpio pahole zlib ] @@ -297,8 +298,8 @@ stdenv.mkDerivation ({ # Some image types need special install targets (e.g. uImage is installed with make uinstall) installTargets = [ (kernelConf.installTarget or ( - /**/ if kernelConf.target == "uImage" then "uinstall" - else if kernelConf.target == "zImage" || kernelConf.target == "Image.gz" then "zinstall" + /**/ if target == "uImage" then "uinstall" + else if target == "zImage" || target == "Image.gz" then "zinstall" else "install")) ]; -- cgit 1.4.1