summary refs log tree commit diff
path: root/pkgs/development/tools/misc/elfutils/default.nix
diff options
context:
space:
mode:
Diffstat (limited to 'pkgs/development/tools/misc/elfutils/default.nix')
-rw-r--r--pkgs/development/tools/misc/elfutils/default.nix62
1 files changed, 57 insertions, 5 deletions
diff --git a/pkgs/development/tools/misc/elfutils/default.nix b/pkgs/development/tools/misc/elfutils/default.nix
index a01a5fb3796e..6254b955a239 100644
--- a/pkgs/development/tools/misc/elfutils/default.nix
+++ b/pkgs/development/tools/misc/elfutils/default.nix
@@ -1,17 +1,69 @@
-{stdenv, fetchurl, m4}:
+{stdenv, fetchurl, m4, zlib, bzip2, xz, bison, flex, gettext}:
 
+# TODO: Look at the hardcoded paths to kernel, modules etc.
 stdenv.mkDerivation rec {
-  name = "elfutils-0.148";
+  name = "elfutils-${version}";
+  version = "0.152";
   
   src = fetchurl {
     urls = [
-      "https://fedorahosted.org/releases/e/l/elfutils/0.143/${name}.tar.bz2"
+      "https://fedorahosted.org/releases/e/l/elfutils/${version}/${name}.tar.bz2"
       "mirror://gentoo/distfiles/${name}.tar.bz2"
       ];
-    sha256 = "1nl7x2gidd2i048yjlvyzhpbca9793z435cw8bsircjxfi5gmswa";
+    sha256 = "19mlgxyzcwiv64ynj2cibgkiw4qkm3n37kizvy6555dsmlaqfybq";
   };
 
-  buildInputs = [m4];
+  patches = [
+    (fetchurl {
+      url = https://fedorahosted.org/releases/e/l/elfutils/0.152/elfutils-portability.patch;
+      sha256 = "0q318w4cvvqv9ps4xcwphapj1gl31isgjyya4y9sm72qj68n61p0";
+    }) ];
+
+  # We need bzip2 in NativeInputs because otherwise we can't unpack the src,
+  # as the host-bzip2 will be in the path.
+  buildNativeInputs = [m4 bison flex gettext bzip2];
+  buildInputs = [zlib bzip2 xz];
+
+  crossAttrs = {
+
+    /* Having bzip2 will harm, because anything using elfutils 
+       as buildInput cross-building, will not be able to run 'bzip2' */
+    propagatedBuildInputs = [ zlib.hostDrv ];
+
+    # This program does not cross-build fine. So I only cross-build some parts
+    # I need for the linux perf tool.
+    # On the awful cross-building:
+    # http://comments.gmane.org/gmane.comp.sysutils.elfutils.devel/2005
+    #
+    # I wrote this testing for the nanonote.
+    buildPhase = ''
+      pushd libebl
+      make
+      popd
+      pushd libelf
+      make
+      popd
+      pushd libdwfl
+      make
+      popd
+      pushd libdw
+      make
+      popd
+    '';
+
+    installPhase = ''
+      pushd libelf
+      make install
+      popd
+      pushd libdwfl
+      make install
+      popd
+      pushd libdw
+      make install
+      popd
+      cp version.h $out/include
+    '';
+  };
   
   dontAddDisableDepTrack = true;