summary refs log tree commit diff
diff options
context:
space:
mode:
authorLluís Batlle i Rossell <viric@vicerveza.homeunix.net>2010-08-04 12:36:35 +0000
committerLluís Batlle i Rossell <viric@vicerveza.homeunix.net>2010-08-04 12:36:35 +0000
commite0a11f532bcc9999cab38a055b0a6f1789f8af77 (patch)
tree0de8fdd320602981371cab709a0afcd50e131f79
parentb17d1d7d07a91a79af432ca0330a879c954b5346 (diff)
downloadnixpkgs-e0a11f532bcc9999cab38a055b0a6f1789f8af77.tar
nixpkgs-e0a11f532bcc9999cab38a055b0a6f1789f8af77.tar.gz
nixpkgs-e0a11f532bcc9999cab38a055b0a6f1789f8af77.tar.bz2
nixpkgs-e0a11f532bcc9999cab38a055b0a6f1789f8af77.tar.lz
nixpkgs-e0a11f532bcc9999cab38a055b0a6f1789f8af77.tar.xz
nixpkgs-e0a11f532bcc9999cab38a055b0a6f1789f8af77.tar.zst
nixpkgs-e0a11f532bcc9999cab38a055b0a6f1789f8af77.zip
Trying to bootstrap gcc 4.5 with ppl, so it does not depend on libstdc++ from the boostrap-tools.
svn path=/nixpkgs/branches/stdenv-updates/; revision=22947
-rw-r--r--pkgs/development/compilers/gcc-4.5/default.nix5
-rw-r--r--pkgs/development/libraries/cloog-ppl/default.nix19
-rw-r--r--pkgs/development/libraries/gmp/4.nix12
-rw-r--r--pkgs/development/libraries/gmp/default.nix11
-rw-r--r--pkgs/development/libraries/ppl/default.nix10
-rw-r--r--pkgs/stdenv/linux/default.nix16
6 files changed, 60 insertions, 13 deletions
diff --git a/pkgs/development/compilers/gcc-4.5/default.nix b/pkgs/development/compilers/gcc-4.5/default.nix
index db6417e3795..b5a5d20f501 100644
--- a/pkgs/development/compilers/gcc-4.5/default.nix
+++ b/pkgs/development/compilers/gcc-4.5/default.nix
@@ -196,6 +196,11 @@ stdenv.mkDerivation ({
     ++ (optionals langVhdl [gnat])
     ;
 
+  configureFlagsArray = stdenv.lib.optionals
+    (ppl != null && ppl.dontDisableStatic == true)
+        [ "--with-host-libstdcxx=-lstdc++ -lgcc_s"
+            "--with-stage1-libs=-lstdc++ -lgcc_s" ];
+
   configureFlags = "
     ${if enableMultilib then "" else "--disable-multilib"}
     ${if enableShared then "" else "--disable-shared"}
diff --git a/pkgs/development/libraries/cloog-ppl/default.nix b/pkgs/development/libraries/cloog-ppl/default.nix
index 5738f76682a..0919afd83c2 100644
--- a/pkgs/development/libraries/cloog-ppl/default.nix
+++ b/pkgs/development/libraries/cloog-ppl/default.nix
@@ -1,19 +1,28 @@
-{ fetchurl, stdenv, ppl }:
+{ fetchurl, stdenv, ppl, static ? false }:
 
+
+let
+    # --with-host-libstdcxx helps when *ppl* is built statically.
+    # But I will suppose that this is statically built only when ppl is also
+    # statically built.
+    staticFlags = assert static -> ppl.dontDisableStatic == true;
+        if static then " --enable-static --disable-shared --with-host-libstdcxx=-lstdc++" else "";
+in
 stdenv.mkDerivation rec {
-  name = "cloog-ppl-0.15.7";
+  name = "cloog-ppl-0.15.9";
 
   src = fetchurl {
     url = "mirror://gcc/infrastructure/${name}.tar.gz";
-    sha256 = "0zb96524jk2l78gr5gw0wq3dnvdsmyr2av59v89zv5xcps417q55";
+    sha256 = "19a2n75k3d3n8llng25f2g88lpvd4zn0lm073rkndjw6l6yd8m4c";
   };
 
   propagatedBuildInputs = [ ppl ];
 
-  configureFlags = "--with-ppl=${ppl}";
+  configureFlags = "--with-ppl=${ppl}" + staticFlags;
+  dontDisableStatic = if static then true else false;
 
   crossAttrs = {
-      configureFlags = "--with-ppl=${ppl.hostDrv}";
+      configureFlags = "--with-ppl=${ppl.hostDrv}" + staticFlags;
   };
 
   doCheck = true;
diff --git a/pkgs/development/libraries/gmp/4.nix b/pkgs/development/libraries/gmp/4.nix
index 8dffdcd7e6d..198fe15deea 100644
--- a/pkgs/development/libraries/gmp/4.nix
+++ b/pkgs/development/libraries/gmp/4.nix
@@ -1,4 +1,8 @@
-{stdenv, fetchurl, m4, cxx ? true}:
+{stdenv, fetchurl, m4, cxx ? true, static ? false}:
+
+let
+  staticFlags = if static then " --enable-static --disable-shared" else "";
+in
 
 stdenv.mkDerivation rec {
   name = "gmp-4.3.2";
@@ -14,7 +18,11 @@ stdenv.mkDerivation rec {
   # instructions (e.g., SSE2 on i686).
   preConfigure = "ln -sf configfsf.guess config.guess";
 
-  configureFlags = if cxx then "--enable-cxx" else "--disable-cxx";
+  configureFlags = (if cxx then "--enable-cxx" else "--disable-cxx") +
+      staticFlags;
+
+  dontDisableStatic = if static then true else false;
+
 
   doCheck = true;
 
diff --git a/pkgs/development/libraries/gmp/default.nix b/pkgs/development/libraries/gmp/default.nix
index 08a03d715c2..338debaa81e 100644
--- a/pkgs/development/libraries/gmp/default.nix
+++ b/pkgs/development/libraries/gmp/default.nix
@@ -1,4 +1,8 @@
-{stdenv, fetchurl, m4, cxx ? true}:
+{stdenv, fetchurl, m4, cxx ? true, static ? false}:
+
+let
+  staticFlags = if static then " --enable-static --disable-shared" else "";
+in
 
 stdenv.mkDerivation rec {
   name = "gmp-5.0.1";
@@ -14,7 +18,10 @@ stdenv.mkDerivation rec {
   # instructions (e.g., SSE2 on i686).
   preConfigure = "ln -sf configfsf.guess config.guess";
 
-  configureFlags = if cxx then "--enable-cxx" else "--disable-cxx";
+  configureFlags = if cxx then "--enable-cxx" else "--disable-cxx" +
+      staticFlags;
+
+  dontDisableStatic = if static then true else false;
 
   doCheck = true;
 
diff --git a/pkgs/development/libraries/ppl/default.nix b/pkgs/development/libraries/ppl/default.nix
index cbe6ee21ecd..677d578e242 100644
--- a/pkgs/development/libraries/ppl/default.nix
+++ b/pkgs/development/libraries/ppl/default.nix
@@ -1,6 +1,9 @@
-{ fetchurl, stdenv, gmpxx, perl, gnum4 }:
+{ fetchurl, stdenv, gmpxx, perl, gnum4, static ? false }:
 
-let version = "0.10.2"; in
+let
+  version = "0.10.2";
+  staticFlags = if static then " --enable-static --disable-shared" else "";
+in
   stdenv.mkDerivation rec {
     name = "ppl-${version}";
 
@@ -12,6 +15,9 @@ let version = "0.10.2"; in
     buildNativeInputs = [ perl gnum4 ];
     propagatedBuildInputs = [ gmpxx ];
 
+    dontDisableStatic = if static then true else false;
+    configureFlags = staticFlags;
+
     # Beware!  It took ~6 hours to compile PPL and run its tests on a 1.2 GHz
     # x86_64 box.  Nevertheless, being a dependency of GCC, it probably ought
     # to be tested.
diff --git a/pkgs/stdenv/linux/default.nix b/pkgs/stdenv/linux/default.nix
index 971ef7cc3b7..a050f3ecaf4 100644
--- a/pkgs/stdenv/linux/default.nix
+++ b/pkgs/stdenv/linux/default.nix
@@ -183,6 +183,18 @@ rec {
     bootStdenv = stdenvLinuxBoot2;
   };
 
+  gccWithStaticLibs = stdenvLinuxBoot2Pkgs.gcc.gcc.override (rec {
+        ppl = stdenvLinuxBoot2Pkgs.ppl.override {
+          static = true;
+          gmpxx = stdenvLinuxBoot2Pkgs.gmpxx.override {
+            static = true;
+          };
+        };
+        cloogppl = stdenvLinuxBoot2Pkgs.cloogppl.override {
+          inherit ppl;
+          static = true;
+        };
+      });
 
   # 6) Construct a third stdenv identical to the second, except that
   #    this one uses the dynamically linked GCC and Binutils from step
@@ -193,7 +205,7 @@ rec {
       inherit (stdenvLinuxBoot2Pkgs) binutils;
       coreutils = bootstrapTools;
       libc = stdenvLinuxGlibc;
-      gcc = stdenvLinuxBoot2Pkgs.gcc.gcc;
+      gcc = gccWithStaticLibs;
       name = "";
     };
     extraAttrs = {
@@ -231,7 +243,7 @@ rec {
       inherit (stdenvLinuxBoot2Pkgs) binutils;
       inherit (stdenvLinuxBoot3Pkgs) coreutils;
       libc = stdenvLinuxGlibc;
-      gcc = stdenvLinuxBoot2Pkgs.gcc.gcc;
+      gcc = gccWithStaticLibs;
       shell = stdenvLinuxBoot3Pkgs.bash + "/bin/bash";
       name = "";
     };