summary refs log tree commit diff
path: root/pkgs/stdenv
diff options
context:
space:
mode:
authorLluís Batlle i Rossell <viric@vicerveza.homeunix.net>2010-08-23 18:05:19 +0000
committerLluís Batlle i Rossell <viric@vicerveza.homeunix.net>2010-08-23 18:05:19 +0000
commitd2bcf1340c3486b2dfcd831e2af345a099eaa65b (patch)
treed5d893667f58e72dd6006b64d2479d07ab272701 /pkgs/stdenv
parenta480f92f9de9e355832af260c28ed4fce3ef758a (diff)
downloadnixlib-d2bcf1340c3486b2dfcd831e2af345a099eaa65b.tar
nixlib-d2bcf1340c3486b2dfcd831e2af345a099eaa65b.tar.gz
nixlib-d2bcf1340c3486b2dfcd831e2af345a099eaa65b.tar.bz2
nixlib-d2bcf1340c3486b2dfcd831e2af345a099eaa65b.tar.lz
nixlib-d2bcf1340c3486b2dfcd831e2af345a099eaa65b.tar.xz
nixlib-d2bcf1340c3486b2dfcd831e2af345a099eaa65b.tar.zst
nixlib-d2bcf1340c3486b2dfcd831e2af345a099eaa65b.zip
Adding building 'binutils' before building the 'glibc' in stdenv-linux.
This should allow keeping the i686-linux boostrap-tools.
I updated some days ago the x86_64-linux bootstrap-tools, but that update is
not needed anymore. We can revert that boostrap-tools update if anyone wants.
Pro:
- new gcc building gcc and glibc.
Contra:
- maybe some old systems (patched red had kernels come to mind) break with that update?


svn path=/nixpkgs/branches/stdenv-updates/; revision=23370
Diffstat (limited to 'pkgs/stdenv')
-rw-r--r--pkgs/stdenv/linux/default.nix26
1 files changed, 23 insertions, 3 deletions
diff --git a/pkgs/stdenv/linux/default.nix b/pkgs/stdenv/linux/default.nix
index 5654a8ccaf58..5cc6d4277f34 100644
--- a/pkgs/stdenv/linux/default.nix
+++ b/pkgs/stdenv/linux/default.nix
@@ -160,10 +160,30 @@ rec {
     bootStdenv = stdenvLinuxBoot1;
   };
 
+  # Create the first "real" standard environment.  This one consists
+  # of bootstrap tools only, and a minimal Glibc to keep the GCC
+  # configure script happy.
+  stdenvLinuxBoot1half = stdenvBootFun {
+    gcc = wrapGCC {
+      libc = bootstrapGlibc;
+      binutils = stdenvLinuxBoot1Pkgs.binutils;
+      coreutils = bootstrapTools;
+    };
+    inherit fetchurl;
+  };
+  
+
+  # 2) These are the packages that we can build with the first
+  #    stdenv.  We only need Glibc (in step 3).
+  stdenvLinuxBoot1halfPkgs = allPackages {
+    inherit system platform;
+    bootStdenv = stdenvLinuxBoot1half;
+  };
+
   
   # 3) Build Glibc with the bootstrap tools.  The result is the full,
   #    dynamically linked, final Glibc.
-  stdenvLinuxGlibc = stdenvLinuxBoot1Pkgs.glibc;
+  stdenvLinuxGlibc = stdenvLinuxBoot1halfPkgs.glibc;
 
   
   # 4) Construct a second stdenv identical to the first, except that
@@ -177,7 +197,7 @@ rec {
     };
     overrides = {
       glibc = stdenvLinuxGlibc;
-      inherit (stdenvLinuxBoot1Pkgs) perl;
+      inherit (stdenvLinuxBoot1halfPkgs) perl;
     };
     inherit fetchurl;
   }) ["gcc" "binutils"];
@@ -215,7 +235,7 @@ rec {
       name = "";
     };
     overrides = {
-      inherit (stdenvLinuxBoot1Pkgs) perl;
+      inherit (stdenvLinuxBoot1halfPkgs) perl;
     };
     inherit fetchurl;
   };