about summary refs log tree commit diff
path: root/pkgs/development/libraries/gperftools
diff options
context:
space:
mode:
authorEelco Dolstra <eelco.dolstra@logicblox.com>2013-01-28 13:48:35 +0100
committerEelco Dolstra <eelco.dolstra@logicblox.com>2013-01-28 17:19:01 +0100
commit35af62f99899132c2a83cbec9baaf2f012ee8429 (patch)
treed50bdeed565075f882a89cc528cb0983c28b637c /pkgs/development/libraries/gperftools
parent67de843bce289e616183c0ec5ce8b24b670ee9bc (diff)
gperftools: Update to 2.0 and fix build
http://hydra.nixos.org/build/3875478
Diffstat (limited to 'pkgs/development/libraries/gperftools')
-rw-r--r--pkgs/development/libraries/gperftools/default.nix22
-rw-r--r--pkgs/development/libraries/gperftools/glibc-2.16.patch13
2 files changed, 35 insertions, 0 deletions
diff --git a/pkgs/development/libraries/gperftools/default.nix b/pkgs/development/libraries/gperftools/default.nix
new file mode 100644
index 0000000000000..76d1d8c41f750
--- /dev/null
+++ b/pkgs/development/libraries/gperftools/default.nix
@@ -0,0 +1,22 @@
+{ stdenv, fetchurl, libunwind }:
+
+stdenv.mkDerivation rec {
+  name = "gperftools-2.0";
+
+  src = fetchurl {
+    url = "https://gperftools.googlecode.com/files/${name}.tar.gz";
+    sha1 = "da7181a7ba9b5ee7302daf6c16e886c179fe8d1b";
+  };
+
+  patches = [ ./glibc-2.16.patch ];
+
+  buildInputs = [ libunwind ];
+
+  enableParallelBuilding = true;
+
+  meta = {
+    homepage = https://code.google.com/p/gperftools/;
+    description = "Fast, multi-threaded malloc() and nifty performance analysis tools";
+    platforms = stdenv.lib.platforms.linux;
+  };
+}
diff --git a/pkgs/development/libraries/gperftools/glibc-2.16.patch b/pkgs/development/libraries/gperftools/glibc-2.16.patch
new file mode 100644
index 0000000000000..b17e0d57f5fb0
--- /dev/null
+++ b/pkgs/development/libraries/gperftools/glibc-2.16.patch
@@ -0,0 +1,13 @@
+Index: gperftools-2.0/src/base/linuxthreads.cc
+===================================================================
+--- gperftools-2.0.orig/src/base/linuxthreads.cc
++++ gperftools-2.0/src/base/linuxthreads.cc
+@@ -193,7 +193,7 @@ static volatile int *sig_pids, sig_num_t
+ /* Signal handler to help us recover from dying while we are attached to
+  * other threads.
+  */
+-static void SignalHandler(int signum, siginfo_t *si, void *data) {
++static void SignalHandler(int signum, struct siginfo *si, void *data) {
+   if (sig_pids != NULL) {
+     if (signum == SIGABRT) {
+       while (sig_num_threads-- > 0) {