summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--gnu/packages/jemalloc.scm19
1 files changed, 19 insertions, 0 deletions
diff --git a/gnu/packages/jemalloc.scm b/gnu/packages/jemalloc.scm
index fcc9cc8082..27fb46e59d 100644
--- a/gnu/packages/jemalloc.scm
+++ b/gnu/packages/jemalloc.scm
@@ -1,5 +1,6 @@
 ;;; GNU Guix --- Functional package management for GNU
 ;;; Copyright © 2015 Sou Bunnbu <iyzsong@gmail.com>
+;;; Copyright © 2017 Efraim Flashner <efraim@flashner.co.il>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -17,6 +18,8 @@
 ;;; along with GNU Guix.  If not, see <http://www.gnu.org/licenses/>.
 
 (define-module (gnu packages jemalloc)
+  #:use-module (srfi srfi-1)
+  #:use-module (srfi srfi-26)
   #:use-module ((guix licenses) #:select (bsd-2))
   #:use-module (guix packages)
   #:use-module (guix download)
@@ -37,6 +40,22 @@
                (base32
                 "10373xhpc10pgmai9fkc1z0rs029qlcb3c0qfnvkbwdlcibdh2cl"))))
     (build-system gnu-build-system)
+    (arguments
+     `(#:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'delete-thp-test
+           ;; This test does not check if transparent huge pages are supported
+           ;; on the system before running the test.
+           (lambda _
+             (substitute* "Makefile.in"
+               (("\\$\\(srcroot\\)test/unit/pages.c \\\\") "\\"))
+             #t)))
+       ,@(if (any (cute string-prefix? <> (or (%current-target-system)
+                                              (%current-system)))
+                 '("x64_64" "i686"))
+           ;; Transparent huge pages are only enabled by default on Intel processors
+           '()
+           '(#:configure-flags (list "--disable-thp")))))
     (home-page "http://jemalloc.net/")
     (synopsis "General-purpose scalable concurrent malloc implementation")
     (description