diff options
author | Lluís Batlle i Rossell <viric@vicerveza.homeunix.net> | 2010-02-16 19:27:51 +0000 |
---|---|---|
committer | Lluís Batlle i Rossell <viric@vicerveza.homeunix.net> | 2010-02-16 19:27:51 +0000 |
commit | c86da889cc12794daaff158021beecb79a036406 (patch) | |
tree | 2d93aff1e81e16fee5e20ad6b2bdbccd65923ab0 /pkgs | |
parent | b07babb810fe80b956fd95d587219a943a0f7ebe (diff) | |
download | nixlib-c86da889cc12794daaff158021beecb79a036406.tar nixlib-c86da889cc12794daaff158021beecb79a036406.tar.gz nixlib-c86da889cc12794daaff158021beecb79a036406.tar.bz2 nixlib-c86da889cc12794daaff158021beecb79a036406.tar.lz nixlib-c86da889cc12794daaff158021beecb79a036406.tar.xz nixlib-c86da889cc12794daaff158021beecb79a036406.tar.zst nixlib-c86da889cc12794daaff158021beecb79a036406.zip |
Made the kernel generate-config "build as modules as you can" an option.
Sepcifically, a nixpkgs "platform" option. So, for PC all remained the same as it was. svn path=/nixpkgs/trunk/; revision=20059
Diffstat (limited to 'pkgs')
-rw-r--r-- | pkgs/os-specific/linux/kernel/builder.sh | 3 | ||||
-rw-r--r-- | pkgs/os-specific/linux/kernel/generate-config.pl | 3 | ||||
-rw-r--r-- | pkgs/os-specific/linux/kernel/generic.nix | 8 | ||||
-rw-r--r-- | pkgs/top-level/platforms.nix | 4 |
4 files changed, 15 insertions, 3 deletions
diff --git a/pkgs/os-specific/linux/kernel/builder.sh b/pkgs/os-specific/linux/kernel/builder.sh index a67877c9fd6a..9c7f0ea4086b 100644 --- a/pkgs/os-specific/linux/kernel/builder.sh +++ b/pkgs/os-specific/linux/kernel/builder.sh @@ -30,7 +30,8 @@ configurePhase() { # Create the config file. echo "generating kernel configuration..." echo "$kernelConfig" > kernel-config - DEBUG=1 ARCH=$arch KERNEL_CONFIG=kernel-config perl -w $generateConfig + DEBUG=1 ARCH=$arch KERNEL_CONFIG=kernel-config AUTO_MODULES=$autoModules \ + perl -w $generateConfig } diff --git a/pkgs/os-specific/linux/kernel/generate-config.pl b/pkgs/os-specific/linux/kernel/generate-config.pl index e8f7e6555d33..3db050c900c7 100644 --- a/pkgs/os-specific/linux/kernel/generate-config.pl +++ b/pkgs/os-specific/linux/kernel/generate-config.pl @@ -13,6 +13,7 @@ use strict; use IPC::Open2; my $debug = $ENV{'DEBUG'}; +my $autoModules = $ENV{'AUTO_MODULES'}; $SIG{PIPE} = 'IGNORE'; @@ -69,7 +70,7 @@ sub runConfig { my $question = $1; my $name = $2; my $alts = $3; my $answer = ""; # Build everything as a module if possible. - $answer = "m" if $alts =~ /\/m/; + $answer = "m" if $autoModules && $alts =~ /\/m/; $answer = $answers{$name} if defined $answers{$name}; print STDERR "QUESTION: $question, NAME: $name, ALTS: $alts, ANSWER: $answer\n" if $debug; print OUT "$answer\n"; diff --git a/pkgs/os-specific/linux/kernel/generic.nix b/pkgs/os-specific/linux/kernel/generic.nix index f1981d261c69..42e12314a217 100644 --- a/pkgs/os-specific/linux/kernel/generic.nix +++ b/pkgs/os-specific/linux/kernel/generic.nix @@ -33,7 +33,12 @@ , preConfigure ? "" , extraMeta ? {} -, platform ? { name = "pc"; uboot = null; kernelBaseConfig = "defconfig"; } +, platform ? { + name = "pc"; + uboot = null; + kernelBaseConfig = "defconfig"; + kernelAutoModules = true; + } , ... }: @@ -64,6 +69,7 @@ stdenv.mkDerivation { generateConfig = ./generate-config.pl; inherit preConfigure src module_init_tools localVersion; + autoModules = platform.kernelAutoModules; patches = map (p: p.patch) kernelPatches; diff --git a/pkgs/top-level/platforms.nix b/pkgs/top-level/platforms.nix index a80c328ea00e..305b4dbd537c 100644 --- a/pkgs/top-level/platforms.nix +++ b/pkgs/top-level/platforms.nix @@ -5,6 +5,8 @@ with pkgs; name = "pc"; uboot = null; kernelBaseConfig = "defconfig"; + # Build whatever possible as a module, if not stated in the extra config. + kernelAutoModules = true; kernelExtraConfig = '' # Virtualisation (KVM, Xen...). @@ -23,6 +25,7 @@ with pkgs; name = "sheevaplug"; kernelBaseConfig = "kirkwood_defconfig"; kernelArch = "arm"; + kernelAutoModules = false; kernelExtraConfig = '' BLK_DEV_RAM y @@ -51,6 +54,7 @@ with pkgs; name = "versatileARM"; kernelBaseConfig = "versatile_defconfig"; kernelArch = "arm"; + kernelAutoModules = false; uboot = null; }; } |