;; This file, which is best viewed as -*- Scheme -*-, lists the OpenPGP keys ;; currently authorized to sign commits in this repository. (authorizations (version 0) (("AD17 A21E F8AE D8F1 CC02 DBD9 F7D5 C9BF 765C 61E3" (name "andreas")) ("2A39 3FFF 68F4 EF7A 3D29 12AF 6F51 20A0 22FB B2D5" (name "ajgrf")) ("306F CB8F 2C01 C25D 29D3 0556 61EF 502E F602 52F2" (name "alexvong1995")) ("4FB9 9F49 2B12 A365 7997 E664 8246 0C08 2A0E E98F" (name "alezost")) ("50F3 3E2E 5B0C 3D90 0424 ABE8 9BDC F497 A4BB CC7F" (name "ambrevar")) ("27D5 86A4 F890 0854 329F F09F 1260 E464 82E6 3562" (name "apteryx")) ("7F73 0343 F2F0 9F3C 77BF 79D3 2E25 EE8B 6180 2BB3" (name "arunisaac")) (;; primary: "3B12 9196 AE30 0C3C 0E90 A26F A715 5567 3271 9948" "9A2B 401E D001 0650 1584 BAAC 8BC4 F447 6E8A 8E00" (name "atheia")) (;; primary: "BE62 7373 8E61 6D6D 1B3A 08E8 A21A 0202 4881 6103" "39B3 3C8D 9448 0D2D DCC2 A498 8B44 A0CD C7B9 56F2" (name "bandali")) (;; primary: "34FF 38BC D151 25A6 E340 A0B5 3453 2F9F AFCA 8B8E" "A0C5 E352 2EF8 EF5C 64CD B7F0 FD73 CAC7 19D3 2566" (name "bavier")) ("BCF8 F737 2CED 080A 67EB 592D 2A6A D9F4 AAC2 0DF6" (name "benwoodcroft")) ("45CC 63B8 5258 C9D5 5F34 B239 D37D 0EA7 CECC 3912" (name "biscuolo")) ("7988 3B9F 7D6A 4DBF 3719 0367 2506 A96C CF63 0B21" (name "boskovits")) ("E82A C026 95D6 FF02 43CA 1E5C F6C5 2DD1 BA27 CB87" (name "brettgilio")) (;; primary: "8929 BBC5 73CD 9206 3DDD 979D 3D36 CAA0 116F 0F99" "1C9B F005 1A1A 6A44 5257 599A A949 03A1 66A1 8FAE" (name "bricewge")) (;; primary: "0401 7A2A 6D9A 0CCD C81D 8EC2 96AB 007F 1A7E D999" "09CD D25B 5244 A376 78F6 EEA8 0CC5 2153 1979 91A5" (name "carl")) ("3E89 EEE7 458E 720D 9754 E0B2 5E28 A33B 0B84 F577" (name "cbaines")) ("3CE4 6455 8A84 FDC6 9DB4 0CFB 090B 1199 3D9A EBB5" (name "civodul")) ("510A 8628 E2A7 7678 8F8C 709C 4BC0 2592 5FF8 F4D3"
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2015 Sou Bunnbu <iyzsong@gmail.com>
;;; Copyright © 2017, 2020, 2021 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2017 Eric Bavier <bavier@member.fsf.org>
;;; Copyright © 2021 Ryan Sundberg <ryan@arctype.co>
;;; Copyright © 2022 Marius Bakke <marius@gnu.org>
;;;
;;; This file is part of GNU Guix.
;;;
;;; GNU Guix is free software; you can redistribute it and/or modify it
;;; under the terms of the GNU General Public License as published by
;;; the Free Software Foundation; either version 3 of the License, or (at
;;; your option) any later version.
;;;
;;; GNU Guix is distributed in the hope that it will be useful, but
;;; WITHOUT ANY WARRANTY; without even the implied warranty of
;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
;;; GNU General Public License for more details.
;;;
;;; You should have received a copy of the GNU General Public License
;;; 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 (ice-9 match)
  #:use-module ((guix licenses) #:select (bsd-2))
  #:use-module (guix packages)
  #:use-module (guix gexp)
  #:use-module (guix download)
  #:use-module (guix utils)
  #:use-module (gnu packages)
  #:use-module (gnu packages perl)
  #:use-module (guix build-system gnu))

(define-public jemalloc
  (package
    (name "jemalloc")
    (version "5.3.0")
    (source (origin
              (method url-fetch)
              (uri (string-append
                    "https://github.com/jemalloc/jemalloc/releases/download/"
                    version "/jemalloc-" version ".tar.bz2"))
              (sha256
               (base32
                "1apyxjd1ixy4g8xkr61p0ny8jiz8vyv1j0k4nxqkxpqrf4g2vf1d"))))
    (build-system gnu-build-system)
    (arguments
     (list
      #: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 \\\\") "\\")))))
      #:configure-flags
      ;; Disable the thread local storage model in jemalloc 5 to prevent
      ;; shared libraries linked to libjemalloc from crashing on dlopen()
      ;; https://github.com/jemalloc/jemalloc/issues/937
      #~'("--disable-initial-exec-tls"
          #$@(match (%current-system)
               ("aarch64-linux"
                (list "--with-lg-page=14"))
               ("powerpc-linux"
                (list "CPPFLAGS=-maltivec"))
               (_
                '())))))
    (inputs (list perl))
    ;; Install the scripts to a separate output to avoid referencing Perl and
    ;; Bash in the default output, saving ~75 MiB on the closure.
    (outputs '("out" "bin"))
    (home-page "https://jemalloc.net/")
    (synopsis "General-purpose scalable concurrent malloc implementation")
    (description
     "This library providing a malloc(3) implementation that emphasizes
fragmentation avoidance and scalable concurrency support.")
    (license bsd-2)))
(name "taylanub")) ;; https://lists.gnu.org/archive/html/guix-devel/2017-03/msg00826.html (;; primary: "1DD1 681F E285 E07F 11DC 0C59 2E15 A6BC D77D 54FD" "3D2C DA58 819C 08C2 A649 D43D 5C3B 064C 724A 5726" (name "thomasd")) ("6580 7361 3BFC C5C7 E2E4 5D45 DC51 8FC8 7F97 16AA" (name "vagrantc")) (;; primary: "C955 CC5D C048 7FB1 7966 40A9 199A F6A3 67E9 4ABB" "7238 7123 8EAC EB63 4548 5857 167F 8EA5 001A FA9C" (name "wigust")) ("FF47 8FB2 64DE 32EC 2967 25A3 DDC0 F535 8812 F8F2" (name "wingo"))))