about summary refs log tree commit diff
path: root/pkgs/development/libraries/glibc-2.10/default.nix
diff options
context:
space:
mode:
Diffstat (limited to 'pkgs/development/libraries/glibc-2.10/default.nix')
-rw-r--r--pkgs/development/libraries/glibc-2.10/default.nix51
1 files changed, 51 insertions, 0 deletions
diff --git a/pkgs/development/libraries/glibc-2.10/default.nix b/pkgs/development/libraries/glibc-2.10/default.nix
new file mode 100644
index 000000000000..48f1a12c058a
--- /dev/null
+++ b/pkgs/development/libraries/glibc-2.10/default.nix
@@ -0,0 +1,51 @@
+{ stdenv, fetchurl, kernelHeaders
+, installLocales ? true
+, profilingLibraries ? false
+, gccCross ? null
+}:
+
+let
+  build = import ./common.nix;
+  cross = if gccCross != null then gccCross.target else null;
+in
+  build ({
+    name = "glibc";
+
+    inherit fetchurl stdenv kernelHeaders installLocales profilingLibraries
+      cross;
+
+    builder = ./builder.sh;
+
+    preInstall = ''
+      ensureDir $out/lib
+      ln -s ${stdenv.gcc.gcc}/lib/libgcc_s.so.1 $out/lib/libgcc_s.so.1
+    '';
+
+    postInstall = ''
+      rm $out/lib/libgcc_s.so.1
+    '';
+
+    meta.description = "The GNU C Library";
+  }
+
+  //
+
+  (if cross != null
+   then {
+      preConfigure = ''
+        sed -i s/-lgcc_eh//g "../$sourceRoot/Makeconfig"
+
+        cat > config.cache << "EOF"
+libc_cv_forced_unwind=yes
+libc_cv_c_cleanup=yes
+libc_cv_gnu89_inline=yes
+EOF
+        export BUILD_CC=gcc
+        export CC="$crossConfig-gcc"
+        export AR="$crossConfig-ar"
+        export RANLIB="$crossConfig-ranlib"
+
+        dontStrip = 1
+      '';
+   }
+   else {}))