about summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--pkgs/build-support/vm/default.nix2
-rw-r--r--pkgs/os-specific/linux/klibc/1.5.nix34
-rw-r--r--pkgs/top-level/all-packages.nix7
3 files changed, 43 insertions, 0 deletions
diff --git a/pkgs/build-support/vm/default.nix b/pkgs/build-support/vm/default.nix
index f96cd6dc0077..7946a16006bc 100644
--- a/pkgs/build-support/vm/default.nix
+++ b/pkgs/build-support/vm/default.nix
@@ -7,6 +7,8 @@ rec {
 
   inherit (kernelPackages_2_6_26) kernel;
 
+  klibcShrunk = pkgs.klibcShrunk.override { klibc = klibc_15; };
+
 
   modulesClosure = makeModulesClosure {
     inherit kernel;
diff --git a/pkgs/os-specific/linux/klibc/1.5.nix b/pkgs/os-specific/linux/klibc/1.5.nix
new file mode 100644
index 000000000000..3a92c2f4d297
--- /dev/null
+++ b/pkgs/os-specific/linux/klibc/1.5.nix
@@ -0,0 +1,34 @@
+{stdenv, fetchurl, perl, bison, mktemp, kernelHeaders}:
+
+assert stdenv.isLinux;
+
+let version = "1.5"; in
+
+stdenv.mkDerivation {
+  name = "klibc-${version}";
+
+  src = fetchurl {
+    url = "mirror://kernel/linux/libs/klibc/klibc-${version}.tar.bz2";
+    sha256 = "1izhf8kscjymsvsvhcqw9awnmp94vwv70zdj09srg9bkpjj0n017";
+  };
+  
+  makeFlags = ["V=1" "prefix=$out" "SHLIBDIR=$out/lib"];
+  
+  preBuild = ''
+    makeFlags=$(eval "echo $makeFlags")
+
+    mkdir linux
+    cp -prsd ${kernelHeaders}/include linux/
+    chmod -R u+w linux/include/
+  ''; # */
+  
+  # Install static binaries as well.
+  postInstall = ''
+    dir=$out/lib/klibc/bin.static
+    mkdir $dir
+    cp $(find $(find . -name static) -type f ! -name "*.g" -a ! -name ".*") $dir/
+    cp usr/dash/sh $dir/
+  '';
+  
+  buildInputs = [perl bison mktemp];
+}
diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix
index 5eed302be699..50047ac72095 100644
--- a/pkgs/top-level/all-packages.nix
+++ b/pkgs/top-level/all-packages.nix
@@ -5257,6 +5257,13 @@ let
     kernelHeaders = glibc.kernelHeaders;
   };
 
+  # Old version; needed in vmtools for insmod.  Should use
+  # module_init_tools instead.
+  klibc_15 = makeOverridable (import ../os-specific/linux/klibc/1.5.nix) {
+    inherit fetchurl stdenv perl bison mktemp;
+    kernelHeaders = glibc.kernelHeaders;
+  };
+
   klibcShrunk = makeOverridable (import ../os-specific/linux/klibc/shrunk.nix) {
     inherit stdenv klibc;
   };