summary refs log tree commit diff
path: root/pkgs/stdenv
diff options
context:
space:
mode:
authorroot <root@raspberrypi.(none)>2012-12-06 15:51:52 +0000
committerLluĂ­s Batlle i Rossell <viric@viric.name>2012-12-26 21:59:54 +0000
commit1b29d29c7610402cb278130f12b27900bb5a99f0 (patch)
tree7a731c60aafd237f5218bc227564b86dfbba7e78 /pkgs/stdenv
parent1af2ada7d4c61e79356a0f3f8bcced6159a6e751 (diff)
downloadnixpkgs-1b29d29c7610402cb278130f12b27900bb5a99f0.tar
nixpkgs-1b29d29c7610402cb278130f12b27900bb5a99f0.tar.gz
nixpkgs-1b29d29c7610402cb278130f12b27900bb5a99f0.tar.bz2
nixpkgs-1b29d29c7610402cb278130f12b27900bb5a99f0.tar.lz
nixpkgs-1b29d29c7610402cb278130f12b27900bb5a99f0.tar.xz
nixpkgs-1b29d29c7610402cb278130f12b27900bb5a99f0.tar.zst
nixpkgs-1b29d29c7610402cb278130f12b27900bb5a99f0.zip
First movement to get the raspberrypi stdenv building.
Diffstat (limited to 'pkgs/stdenv')
-rw-r--r--pkgs/stdenv/default.nix1
-rw-r--r--pkgs/stdenv/generic/default.nix2
-rw-r--r--pkgs/stdenv/linux/default.nix13
3 files changed, 12 insertions, 4 deletions
diff --git a/pkgs/stdenv/default.nix b/pkgs/stdenv/default.nix
index 8e0da288eec..3c75597afca 100644
--- a/pkgs/stdenv/default.nix
+++ b/pkgs/stdenv/default.nix
@@ -55,6 +55,7 @@ rec {
     if stdenvType == "i686-linux" then stdenvLinux else
     if stdenvType == "x86_64-linux" then stdenvLinux else
     if stdenvType == "armv5tel-linux" then stdenvLinux else
+    if stdenvType == "armv6l-linux" then stdenvLinux else
     if stdenvType == "armv7l-linux" then stdenvLinux else
     if stdenvType == "mips64el-linux" then stdenvLinux else
     if stdenvType == "powerpc-linux" then /* stdenvLinux */ stdenvNative else
diff --git a/pkgs/stdenv/generic/default.nix b/pkgs/stdenv/generic/default.nix
index 20cbb1b455c..ea101ddb075 100644
--- a/pkgs/stdenv/generic/default.nix
+++ b/pkgs/stdenv/generic/default.nix
@@ -87,6 +87,7 @@ let
                || result.system == "x86_64-linux"
                || result.system == "powerpc-linux"
                || result.system == "armv5tel-linux"
+               || result.system == "armv6l-linux"
                || result.system == "armv7l-linux"
                || result.system == "mips64el-linux";
         isGNU = result.system == "i686-gnu";      # GNU/Hurd
@@ -120,6 +121,7 @@ let
         isMips = result.system == "mips-linux"
                 || result.system == "mips64el-linux";
         isArm = result.system == "armv5tel-linux"
+             || result.system == "armv6l-linux"
              || result.system == "armv7l-linux";
 
         # Utility function: allow stdenv to be easily regenerated with
diff --git a/pkgs/stdenv/linux/default.nix b/pkgs/stdenv/linux/default.nix
index 3105e76f817..6a202951c7c 100644
--- a/pkgs/stdenv/linux/default.nix
+++ b/pkgs/stdenv/linux/default.nix
@@ -16,6 +16,7 @@ rec {
     else if system == "x86_64-linux" then import ./bootstrap/x86_64
     else if system == "powerpc-linux" then import ./bootstrap/powerpc
     else if system == "armv5tel-linux" then import ./bootstrap/armv5tel
+    else if system == "armv6l-linux" then import ./bootstrap/armv5tel
     else if system == "armv7l-linux" then import ./bootstrap/armv5tel
     else if system == "mips64el-linux" then import ./bootstrap/loongson2f
     else abort "unsupported platform for the pure Linux stdenv";
@@ -57,7 +58,7 @@ rec {
     builder = bootstrapFiles.sh;
     
     args =
-      if system == "armv5tel-linux"
+      if (system == "armv5tel-linux" || system == "arm6l-linux")
       then [ ./scripts/unpack-bootstrap-tools-arm.sh ]
       else [ ./scripts/unpack-bootstrap-tools.sh ];
     
@@ -189,7 +190,7 @@ rec {
   
   # 5) Build Glibc with the bootstrap tools.  The result is the full,
   #    dynamically linked, final Glibc.
-  stdenvLinuxGlibc = stdenvLinuxBoot2Pkgs.glibc;
+  stdenvLinuxGlibc = stdenvLinuxBoot2Pkgs.glibc.override { recentGcc = false; };
 
   
   # 6) Construct a third stdenv identical to the 2nd, except that
@@ -201,19 +202,23 @@ rec {
       coreutils = bootstrapTools;
       libc = stdenvLinuxGlibc;
     };
-    overrides = pkgs: {
+    overrides = pkgs: ({
       glibc = stdenvLinuxGlibc;
       inherit (stdenvLinuxBoot1Pkgs) perl;
+    } // (if (platform ? name && platform.name != "raspberrypi") then {
       # Link GCC statically against GMP etc.  This makes sense because
       # these builds of the libraries are only used by GCC, so it
       # reduces the size of the stdenv closure.
+
+      # On raspberry pi we can't do that, because libgcc/libstdc++ are made
+      # without hardfp, and can't be linked with the new hardfp code in gcc.
       gmp = pkgs.gmp.override { stdenv = pkgs.makeStaticLibraries pkgs.stdenv; };
       mpfr = pkgs.mpfr.override { stdenv = pkgs.makeStaticLibraries pkgs.stdenv; };
       mpc = pkgs.mpc.override { stdenv = pkgs.makeStaticLibraries pkgs.stdenv; };
       isl = pkgs.isl.override { stdenv = pkgs.makeStaticLibraries pkgs.stdenv; };
       cloog = pkgs.cloog.override { stdenv = pkgs.makeStaticLibraries pkgs.stdenv; };
       ppl = pkgs.ppl.override { stdenv = pkgs.makeStaticLibraries pkgs.stdenv; };
-    };
+    } else {}));
     inherit fetchurl;
   };