From d536542ee4db45c1ccbe0d5448ea072496025043 Mon Sep 17 00:00:00 2001 From: Yorick van Pelt Date: Mon, 16 Apr 2018 12:27:04 +0200 Subject: [PATCH 1/3] jemalloc: add 4.5.0 version --- .../development/libraries/jemalloc/common.nix | 40 +++++++++++++++++++ .../libraries/jemalloc/default.nix | 40 ++----------------- .../libraries/jemalloc/jemalloc450.nix | 6 +++ pkgs/top-level/all-packages.nix | 2 + 4 files changed, 51 insertions(+), 37 deletions(-) create mode 100644 pkgs/development/libraries/jemalloc/common.nix create mode 100644 pkgs/development/libraries/jemalloc/jemalloc450.nix diff --git a/pkgs/development/libraries/jemalloc/common.nix b/pkgs/development/libraries/jemalloc/common.nix new file mode 100644 index 00000000000..f4bd35ee56e --- /dev/null +++ b/pkgs/development/libraries/jemalloc/common.nix @@ -0,0 +1,40 @@ +{ stdenv, fetchurl, fetchpatch, version, sha256 }: + +stdenv.mkDerivation rec { + name = "jemalloc-${version}"; + inherit version; + + src = fetchurl { + url = "https://github.com/jemalloc/jemalloc/releases/download/${version}/${name}.tar.bz2"; + inherit sha256; + }; + + # By default, jemalloc puts a je_ prefix onto all its symbols on OSX, which + # then stops downstream builds (mariadb in particular) from detecting it. This + # option should remove the prefix and give us a working jemalloc. + configureFlags = stdenv.lib.optional stdenv.isDarwin "--with-jemalloc-prefix=" + # jemalloc is unable to correctly detect transparent hugepage support on + # ARM (https://github.com/jemalloc/jemalloc/issues/526), and the default + # kernel ARMv6/7 kernel does not enable it, so we explicitly disable support + ++ stdenv.lib.optional stdenv.isArm "--disable-thp"; + doCheck = true; + + patches = stdenv.lib.optional stdenv.isAarch64 (fetchpatch { + url = "https://patch-diff.githubusercontent.com/raw/jemalloc/jemalloc/pull/1035.patch"; + sha256 = "02y0q3dp253bipxv4r954nqipbjbj92p6ww9bx5bk3d8pa81wkqq"; + }); + + enableParallelBuilding = true; + + meta = with stdenv.lib; { + homepage = http://jemalloc.net; + description = "General purpose malloc(3) implementation"; + longDescription = '' + malloc(3)-compatible memory allocator that emphasizes fragmentation + avoidance and scalable concurrency support. + ''; + license = licenses.bsd2; + platforms = platforms.all; + maintainers = with maintainers; [ wkennington ]; + }; +} diff --git a/pkgs/development/libraries/jemalloc/default.nix b/pkgs/development/libraries/jemalloc/default.nix index 0882431cc15..c507eacbd00 100644 --- a/pkgs/development/libraries/jemalloc/default.nix +++ b/pkgs/development/libraries/jemalloc/default.nix @@ -1,40 +1,6 @@ { stdenv, fetchurl, fetchpatch }: - -stdenv.mkDerivation rec { - name = "jemalloc-${version}"; +import ./common.nix { + inherit stdenv fetchurl fetchpatch; version = "5.0.1"; - - src = fetchurl { - url = "https://github.com/jemalloc/jemalloc/releases/download/${version}/${name}.tar.bz2"; - sha256 = "4814781d395b0ef093b21a08e8e6e0bd3dab8762f9935bbfb71679b0dea7c3e9"; - }; - - # By default, jemalloc puts a je_ prefix onto all its symbols on OSX, which - # then stops downstream builds (mariadb in particular) from detecting it. This - # option should remove the prefix and give us a working jemalloc. - configureFlags = stdenv.lib.optional stdenv.isDarwin "--with-jemalloc-prefix=" - # jemalloc is unable to correctly detect transparent hugepage support on - # ARM (https://github.com/jemalloc/jemalloc/issues/526), and the default - # kernel ARMv6/7 kernel does not enable it, so we explicitly disable support - ++ stdenv.lib.optional stdenv.isArm "--disable-thp"; - doCheck = true; - - patches = stdenv.lib.optional stdenv.isAarch64 (fetchpatch { - url = "https://patch-diff.githubusercontent.com/raw/jemalloc/jemalloc/pull/1035.patch"; - sha256 = "02y0q3dp253bipxv4r954nqipbjbj92p6ww9bx5bk3d8pa81wkqq"; - }); - - enableParallelBuilding = true; - - meta = with stdenv.lib; { - homepage = http://jemalloc.net; - description = "General purpose malloc(3) implementation"; - longDescription = '' - malloc(3)-compatible memory allocator that emphasizes fragmentation - avoidance and scalable concurrency support. - ''; - license = licenses.bsd2; - platforms = platforms.all; - maintainers = with maintainers; [ wkennington ]; - }; + sha256 = "4814781d395b0ef093b21a08e8e6e0bd3dab8762f9935bbfb71679b0dea7c3e9"; } diff --git a/pkgs/development/libraries/jemalloc/jemalloc450.nix b/pkgs/development/libraries/jemalloc/jemalloc450.nix new file mode 100644 index 00000000000..a55270fcd02 --- /dev/null +++ b/pkgs/development/libraries/jemalloc/jemalloc450.nix @@ -0,0 +1,6 @@ +{ stdenv, fetchurl, fetchpatch }: +import ./common.nix { + inherit stdenv fetchurl fetchpatch; + version = "4.5.0"; + sha256 = "10373xhpc10pgmai9fkc1z0rs029qlcb3c0qfnvkbwdlcibdh2cl"; +} diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 40792a702af..ce9fb7bd94a 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -9445,6 +9445,8 @@ with pkgs; jemalloc = callPackage ../development/libraries/jemalloc { }; + jemalloc450 = callPackage ../development/libraries/jemalloc/jemalloc450.nix { }; + jshon = callPackage ../development/tools/parsing/jshon { }; json2hcl = callPackage ../development/tools/json2hcl { }; From 2c5efc873557f43613d6adcd45d741a62d867bb6 Mon Sep 17 00:00:00 2001 From: Yorick van Pelt Date: Mon, 16 Apr 2018 12:29:12 +0200 Subject: [PATCH 2/3] rocksdb: use jemalloc 4.5.0 --- pkgs/top-level/all-packages.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index ce9fb7bd94a..0345c91362e 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -11304,7 +11304,7 @@ with pkgs; rlog = callPackage ../development/libraries/rlog { }; - rocksdb = callPackage ../development/libraries/rocksdb { }; + rocksdb = callPackage ../development/libraries/rocksdb { jemalloc = jemalloc450; }; rocksdb_lite = rocksdb.override { enableLite = true; }; From c03f5f557979825bcd34c4fbbd65766d1d44586d Mon Sep 17 00:00:00 2001 From: Yorick van Pelt Date: Mon, 16 Apr 2018 16:18:33 +0200 Subject: [PATCH 3/3] jemalloc: don't try to patch 4.5.0 --- pkgs/development/libraries/jemalloc/common.nix | 11 +++-------- pkgs/development/libraries/jemalloc/default.nix | 6 +++++- pkgs/development/libraries/jemalloc/jemalloc450.nix | 4 ++-- 3 files changed, 10 insertions(+), 11 deletions(-) diff --git a/pkgs/development/libraries/jemalloc/common.nix b/pkgs/development/libraries/jemalloc/common.nix index f4bd35ee56e..1a26bd13d41 100644 --- a/pkgs/development/libraries/jemalloc/common.nix +++ b/pkgs/development/libraries/jemalloc/common.nix @@ -1,6 +1,6 @@ -{ stdenv, fetchurl, fetchpatch, version, sha256 }: +{ stdenv, fetchurl, version, sha256, ... }@args: -stdenv.mkDerivation rec { +stdenv.mkDerivation (rec { name = "jemalloc-${version}"; inherit version; @@ -19,11 +19,6 @@ stdenv.mkDerivation rec { ++ stdenv.lib.optional stdenv.isArm "--disable-thp"; doCheck = true; - patches = stdenv.lib.optional stdenv.isAarch64 (fetchpatch { - url = "https://patch-diff.githubusercontent.com/raw/jemalloc/jemalloc/pull/1035.patch"; - sha256 = "02y0q3dp253bipxv4r954nqipbjbj92p6ww9bx5bk3d8pa81wkqq"; - }); - enableParallelBuilding = true; meta = with stdenv.lib; { @@ -37,4 +32,4 @@ stdenv.mkDerivation rec { platforms = platforms.all; maintainers = with maintainers; [ wkennington ]; }; -} +} // (builtins.removeAttrs args [ "stdenv" "fetchurl" "version" "sha256" ])) diff --git a/pkgs/development/libraries/jemalloc/default.nix b/pkgs/development/libraries/jemalloc/default.nix index c507eacbd00..40c06cbffdf 100644 --- a/pkgs/development/libraries/jemalloc/default.nix +++ b/pkgs/development/libraries/jemalloc/default.nix @@ -1,6 +1,10 @@ { stdenv, fetchurl, fetchpatch }: import ./common.nix { - inherit stdenv fetchurl fetchpatch; + inherit stdenv fetchurl; version = "5.0.1"; sha256 = "4814781d395b0ef093b21a08e8e6e0bd3dab8762f9935bbfb71679b0dea7c3e9"; + patches = stdenv.lib.optional stdenv.isAarch64 (fetchpatch { + url = "https://patch-diff.githubusercontent.com/raw/jemalloc/jemalloc/pull/1035.patch"; + sha256 = "02y0q3dp253bipxv4r954nqipbjbj92p6ww9bx5bk3d8pa81wkqq"; + }); } diff --git a/pkgs/development/libraries/jemalloc/jemalloc450.nix b/pkgs/development/libraries/jemalloc/jemalloc450.nix index a55270fcd02..00b38a85553 100644 --- a/pkgs/development/libraries/jemalloc/jemalloc450.nix +++ b/pkgs/development/libraries/jemalloc/jemalloc450.nix @@ -1,6 +1,6 @@ -{ stdenv, fetchurl, fetchpatch }: +{ stdenv, fetchurl }: import ./common.nix { - inherit stdenv fetchurl fetchpatch; + inherit stdenv fetchurl; version = "4.5.0"; sha256 = "10373xhpc10pgmai9fkc1z0rs029qlcb3c0qfnvkbwdlcibdh2cl"; }