diff options
author | github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> | 2021-07-16 06:01:38 +0000 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-07-16 06:01:38 +0000 |
commit | e69bb567a4711ffe850eb2970bc26928bbd9383d (patch) | |
tree | 6fff3eb1fb24a358dd1e8414483bab7377fbf0cb /pkgs/os-specific/linux | |
parent | f5074933b7280ce32e1a756e6468a5321cb885de (diff) | |
parent | 7959589ea0b53a9c4fcbbd8ae24fc63a4dc44eee (diff) | |
download | nixpkgs-e69bb567a4711ffe850eb2970bc26928bbd9383d.tar nixpkgs-e69bb567a4711ffe850eb2970bc26928bbd9383d.tar.gz nixpkgs-e69bb567a4711ffe850eb2970bc26928bbd9383d.tar.bz2 nixpkgs-e69bb567a4711ffe850eb2970bc26928bbd9383d.tar.lz nixpkgs-e69bb567a4711ffe850eb2970bc26928bbd9383d.tar.xz nixpkgs-e69bb567a4711ffe850eb2970bc26928bbd9383d.tar.zst nixpkgs-e69bb567a4711ffe850eb2970bc26928bbd9383d.zip |
Merge staging-next into staging
Diffstat (limited to 'pkgs/os-specific/linux')
-rw-r--r-- | pkgs/os-specific/linux/kernel/generate-config.pl | 3 | ||||
-rw-r--r-- | pkgs/os-specific/linux/kernel/generic.nix | 22 | ||||
-rw-r--r-- | pkgs/os-specific/linux/kernel/manual-config.nix | 14 |
3 files changed, 26 insertions, 13 deletions
diff --git a/pkgs/os-specific/linux/kernel/generate-config.pl b/pkgs/os-specific/linux/kernel/generate-config.pl index 82e1cb66e2b..df807188f14 100644 --- a/pkgs/os-specific/linux/kernel/generate-config.pl +++ b/pkgs/os-specific/linux/kernel/generate-config.pl @@ -19,6 +19,7 @@ my $autoModules = $ENV{'AUTO_MODULES'}; my $preferBuiltin = $ENV{'PREFER_BUILTIN'}; my $ignoreConfigErrors = $ENV{'ignoreConfigErrors'}; my $buildRoot = $ENV{'BUILD_ROOT'}; +my $makeFlags = $ENV{'MAKE_FLAGS'}; $SIG{PIPE} = 'IGNORE'; # Read the answers. @@ -40,7 +41,7 @@ close ANSWERS; sub runConfig { # Run `make config'. - my $pid = open2(\*IN, \*OUT, "make -C $ENV{SRC} O=$buildRoot config SHELL=bash ARCH=$ENV{ARCH} CC=$ENV{CC} HOSTCC=$ENV{HOSTCC} HOSTCXX=$ENV{HOSTCXX}"); + my $pid = open2(\*IN, \*OUT, "make -C $ENV{SRC} O=$buildRoot config SHELL=bash ARCH=$ENV{ARCH} CC=$ENV{CC} HOSTCC=$ENV{HOSTCC} HOSTCXX=$ENV{HOSTCXX} $makeFlags"); # Parse the output, look for questions and then send an # appropriate answer. diff --git a/pkgs/os-specific/linux/kernel/generic.nix b/pkgs/os-specific/linux/kernel/generic.nix index b35c84513e6..aa0f19858b8 100644 --- a/pkgs/os-specific/linux/kernel/generic.nix +++ b/pkgs/os-specific/linux/kernel/generic.nix @@ -21,6 +21,9 @@ , # Legacy overrides to the intermediate kernel config, as string extraConfig ? "" + # Additional make flags passed to kbuild +, extraMakeFlags ? [] + , # kernel intermediate config overrides, as a set structuredExtraConfig ? {} @@ -97,7 +100,7 @@ let in lib.concatStringsSep "\n" ([baseConfigStr] ++ configFromPatches); configfile = stdenv.mkDerivation { - inherit ignoreConfigErrors autoModules preferBuiltin kernelArch; + inherit ignoreConfigErrors autoModules preferBuiltin kernelArch extraMakeFlags; pname = "linux-config"; inherit version; @@ -116,6 +119,9 @@ let # e.g. "bzImage" kernelTarget = stdenv.hostPlatform.linux-kernel.target; + makeFlags = lib.optionals (stdenv.hostPlatform.linux-kernel ? makeFlags) stdenv.hostPlatform.linux-kernel.makeFlags + ++ extraMakeFlags; + prePatch = kernel.prePatch + '' # Patch kconfig to print "###" after every question so that # generate-config.pl from the generic builder can answer them. @@ -134,16 +140,19 @@ let export HOSTLD=$LD_FOR_BUILD # Get a basic config file for later refinement with $generateConfig. - make -C . O="$buildRoot" $kernelBaseConfig \ + make $makeFlags \ + -C . O="$buildRoot" $kernelBaseConfig \ ARCH=$kernelArch \ HOSTCC=$HOSTCC HOSTCXX=$HOSTCXX HOSTAR=$HOSTAR HOSTLD=$HOSTLD \ - CC=$CC OBJCOPY=$OBJCOPY OBJDUMP=$OBJDUMP READELF=$READELF + CC=$CC OBJCOPY=$OBJCOPY OBJDUMP=$OBJDUMP READELF=$READELF \ + $makeFlags # Create the config file. echo "generating kernel configuration..." ln -s "$kernelConfigPath" "$buildRoot/kernel-config" DEBUG=1 ARCH=$kernelArch KERNEL_CONFIG="$buildRoot/kernel-config" AUTO_MODULES=$autoModules \ - PREFER_BUILTIN=$preferBuiltin BUILD_ROOT="$buildRoot" SRC=. perl -w $generateConfig + PREFER_BUILTIN=$preferBuiltin BUILD_ROOT="$buildRoot" SRC=. MAKE_FLAGS="$makeFlags" \ + perl -w $generateConfig ''; installPhase = "mv $buildRoot/.config $out"; @@ -151,7 +160,6 @@ let enableParallelBuilding = true; passthru = rec { - module = import ../../../../nixos/modules/system/boot/kernel_config.nix; # used also in apache # { modules = [ { options = res.options; config = svc.config or svc; } ]; @@ -172,14 +180,14 @@ let }; # end of configfile derivation kernel = (callPackage ./manual-config.nix {}) { - inherit version modDirVersion src kernelPatches randstructSeed lib stdenv extraMeta configfile; + inherit version modDirVersion src kernelPatches randstructSeed lib stdenv extraMakeFlags extraMeta configfile; config = { CONFIG_MODULES = "y"; CONFIG_FW_LOADER = "m"; }; }; passthru = { features = kernelFeatures; - inherit commonStructuredConfig isZen isHardened isLibre modDirVersion; + inherit commonStructuredConfig structuredExtraConfig extraMakeFlags isZen isHardened isLibre modDirVersion; isXen = lib.warn "The isXen attribute is deprecated. All Nixpkgs kernels that support it now have Xen enabled." true; kernelOlder = lib.versionOlder version; kernelAtLeast = lib.versionAtLeast version; diff --git a/pkgs/os-specific/linux/kernel/manual-config.nix b/pkgs/os-specific/linux/kernel/manual-config.nix index fda2881a8d2..77add0aef53 100644 --- a/pkgs/os-specific/linux/kernel/manual-config.nix +++ b/pkgs/os-specific/linux/kernel/manual-config.nix @@ -1,5 +1,5 @@ { lib, buildPackages, runCommand, nettools, bc, bison, flex, perl, rsync, gmp, libmpc, mpfr, openssl -, libelf, cpio, elfutils, zstd, gawk +, libelf, cpio, elfutils, zstd, gawk, python3Minimal , writeTextFile }: @@ -19,6 +19,8 @@ in { stdenv, # The kernel version version, + # Additional kernel make flags + extraMakeFlags ? [], # The version of the kernel module directory modDirVersion ? version, # The kernel source (tarball, git checkout, etc.) @@ -121,7 +123,7 @@ let # See also https://kernelnewbies.org/BuildId sed -i Makefile -e 's|--build-id=[^ ]*|--build-id=none|' - patchShebangs scripts/ld-version.sh + patchShebangs scripts ''; postPatch = '' @@ -173,7 +175,9 @@ let "KBUILD_BUILD_VERSION=1-NixOS" kernelConf.target "vmlinux" # for "perf" and things like that - ] ++ optional isModular "modules"; + ] + ++ optional isModular "modules" + ++ extraMakeFlags; installFlags = [ "INSTALLKERNEL=${installkernel}" @@ -307,7 +311,7 @@ stdenv.mkDerivation ((drvAttrs config stdenv.hostPlatform.linux-kernel kernelPat enableParallelBuilding = true; depsBuildBuild = [ buildPackages.stdenv.cc ]; - nativeBuildInputs = [ perl bc nettools openssl rsync gmp libmpc mpfr gawk zstd ] + nativeBuildInputs = [ perl bc nettools openssl rsync gmp libmpc mpfr gawk zstd python3Minimal ] ++ optional (stdenv.hostPlatform.linux-kernel.target == "uImage") buildPackages.ubootTools ++ optional (lib.versionAtLeast version "4.14" && lib.versionOlder version "5.8") libelf # Removed util-linuxMinimal since it should not be a dependency. @@ -325,7 +329,7 @@ stdenv.mkDerivation ((drvAttrs config stdenv.hostPlatform.linux-kernel kernelPat "ARCH=${stdenv.hostPlatform.linuxArch}" ] ++ lib.optional (stdenv.hostPlatform != stdenv.buildPlatform) [ "CROSS_COMPILE=${stdenv.cc.targetPrefix}" - ]; + ] ++ extraMakeFlags; karch = stdenv.hostPlatform.linuxArch; }) |