diff --git a/pkgs/os-specific/linux/kernel/builder.sh b/pkgs/os-specific/linux/kernel/builder.sh index 07eb4edded4..f683498417d 100644 --- a/pkgs/os-specific/linux/kernel/builder.sh +++ b/pkgs/os-specific/linux/kernel/builder.sh @@ -1,7 +1,7 @@ source $stdenv/setup -makeFlags="ARCH=$arch" +makeFlags="ARCH=$arch SHELL=/bin/sh" configurePhase() { diff --git a/pkgs/os-specific/linux/kernel/generate-config.pl b/pkgs/os-specific/linux/kernel/generate-config.pl index 56320ce882f..e8349db8ec8 100644 --- a/pkgs/os-specific/linux/kernel/generate-config.pl +++ b/pkgs/os-specific/linux/kernel/generate-config.pl @@ -128,7 +128,9 @@ while () { close CONFIG; foreach my $name (sort (keys %answers)) { - my $f = $requiredAnswers{$name} ? sub { die @_; } : sub { warn @_; }; + my $f = $requiredAnswers{$name} && $ENV{'ignoreConfigErrors'} ne "1" + ? sub { die @_; } : sub { warn @_; }; + my $f = sub { warn @_; }; &$f("unused option: $name\n") unless defined $config{$name}; &$f("option not set correctly: $name\n") if $config{$name} && $config{$name} ne $answers{$name}; diff --git a/pkgs/os-specific/linux/kernel/generic.nix b/pkgs/os-specific/linux/kernel/generic.nix index 85fd91ca1bb..b4fca451142 100644 --- a/pkgs/os-specific/linux/kernel/generic.nix +++ b/pkgs/os-specific/linux/kernel/generic.nix @@ -66,6 +66,9 @@ stdenv.mkDerivation { map ({extraConfig ? "", ...}: extraConfig) kernelPatches; in lib.concatStringsSep "\n" ([config] ++ configFromPatches); + # For UML, just ignore all options that don't apply (I'm lazy). + ignoreConfigErrors = userModeLinux; + buildInputs = [ perl mktemp ]; arch =