* Get User-Mode Linux to build with a newer kernel. Yes, SHELL really

has to be "/bin/sh" - other values such as "sh" or "bash" or "$(type
  -tP sh)" cause a build error:

  LD      .tmp_vmlinux1
  /nix/store/1yv8i1m76cvwk5w5i5wrk4gj5zyfj6vh-binutils-2.19.1/bin/ld:arch/um/kernel/vmlinux.lds:1: ignoring invalid character `#' in expression
  /nix/store/1yv8i1m76cvwk5w5i5wrk4gj5zyfj6vh-binutils-2.19.1/bin/ld:arch/um/kernel/vmlinux.lds:1: syntax error
  collect2: ld returned 1 exit status

  This is caused by Bash 4.0
  (http://bugzilla.kernel.org/show_bug.cgi?id=13343).

svn path=/nixpkgs/branches/kernel-config/; revision=18941
This commit is contained in:
Eelco Dolstra 2009-12-14 17:22:38 +00:00
parent 03b4efe9c8
commit c3e80cbc9f
3 changed files with 7 additions and 2 deletions

View file

@ -1,7 +1,7 @@
source $stdenv/setup
makeFlags="ARCH=$arch"
makeFlags="ARCH=$arch SHELL=/bin/sh"
configurePhase() {

View file

@ -128,7 +128,9 @@ while (<CONFIG>) {
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};

View file

@ -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 =