From 35af62f99899132c2a83cbec9baaf2f012ee8429 Mon Sep 17 00:00:00 2001 From: Eelco Dolstra Date: Mon, 28 Jan 2013 13:48:35 +0100 Subject: [PATCH] gperftools: Update to 2.0 and fix build http://hydra.nixos.org/build/3875478 --- .../interpreters/hiphopvm/default.nix | 4 ++-- .../libraries/google-perftools/default.nix | 14 ------------ .../libraries/gperftools/default.nix | 22 +++++++++++++++++++ .../libraries/gperftools/glibc-2.16.patch | 13 +++++++++++ pkgs/top-level/all-packages.nix | 2 +- 5 files changed, 38 insertions(+), 17 deletions(-) delete mode 100644 pkgs/development/libraries/google-perftools/default.nix create mode 100644 pkgs/development/libraries/gperftools/default.nix create mode 100644 pkgs/development/libraries/gperftools/glibc-2.16.patch diff --git a/pkgs/development/interpreters/hiphopvm/default.nix b/pkgs/development/interpreters/hiphopvm/default.nix index d2cdf06f138..57e3e93c646 100644 --- a/pkgs/development/interpreters/hiphopvm/default.nix +++ b/pkgs/development/interpreters/hiphopvm/default.nix @@ -1,6 +1,6 @@ { stdenv, fetchurl, fetchgit, cmake, boost, libunwind, mysql, libmemcached, pcre , libevent, gd, curl, libxml2, icu, flex, bison, openssl, zlib, php, re2c -, expat, libcap, oniguruma, libdwarf, libmcrypt, inteltbb, google_perftools +, expat, libcap, oniguruma, libdwarf, libmcrypt, inteltbb, gperftools , bzip2, openldap, readline, libelf, uwimap, binutils, cyrus_sasl, pam }: assert stdenv.system == "x86_64-linux"; @@ -45,7 +45,7 @@ stdenv.mkDerivation { buildInputs = [ cmake boost libunwind mysql libmemcached pcre libeventFB gd curlFB libxml2_280 icu flex bison openssl zlib php expat libcap oniguruma - libdwarf libmcrypt inteltbb google_perftools bzip2 openldap readline + libdwarf libmcrypt inteltbb gperftools bzip2 openldap readline libelf uwimap binutils cyrus_sasl pam ]; installPhase = '' diff --git a/pkgs/development/libraries/google-perftools/default.nix b/pkgs/development/libraries/google-perftools/default.nix deleted file mode 100644 index 7935a794a2f..00000000000 --- a/pkgs/development/libraries/google-perftools/default.nix +++ /dev/null @@ -1,14 +0,0 @@ -{stdenv, fetchurl, libunwind}: - -stdenv.mkDerivation rec { - name = "google-perftools-1.8.3"; - src = fetchurl { - url = "http://google-perftools.googlecode.com/files/${name}.tar.gz"; - sha256 = "0ncx3a8jl6n38q9bjnaz5sq96yb6yh99j3bl64k3295v9arl9mva"; - }; - buildInputs = [libunwind]; - meta = { - description = "Fast, multi-threaded malloc() and nifty performance analysis tools."; - platforms = stdenv.lib.platforms.linux; - }; -} diff --git a/pkgs/development/libraries/gperftools/default.nix b/pkgs/development/libraries/gperftools/default.nix new file mode 100644 index 00000000000..76d1d8c41f7 --- /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 00000000000..b17e0d57f5f --- /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) { diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index bfab267a2ab..ed7d4fb886e 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -3807,7 +3807,7 @@ let goocanvas = callPackage ../development/libraries/goocanvas { }; - google_perftools = callPackage ../development/libraries/google-perftools { }; + gperftools = callPackage ../development/libraries/gperftools { }; #GMP ex-satellite, so better keep it near gmp mpfr = callPackage ../development/libraries/mpfr { };