aboutsummaryrefslogtreecommitdiff
;;; 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)))
u/packages/rust.scm (rust)[native-inputs]: Update clang-source to 17. Change-Id: I2b63b0c311eca9d66ea91deead26cf815018e977 Efraim Flashner 2024-11-28gnu: rust: Update to 1.81....gnu/packages/rust.scm (rust-1.81): New variable. gnu/packages/rust.scm (rust): Update to 1.81. Change-Id: Idb1958364225bebb9aa415419083b6ab97d7c4c7 Signed-off-by: Efraim Flashner <efraim@flashner.co.il> Brennan Vincent 2024-11-28gnu: rust: Update to 1.80....gnu/packages/rust.scm (rust): Update to 1.80. Change-Id: Ife65cb52362a30df8aabd4255a3fdc3c3d60e7bb Signed-off-by: Efraim Flashner <efraim@flashner.co.il> Brennan Vincent 2024-11-28gnu: Add rust-1.80....gnu/packages/rust.scm (rust-1.80): New variable. Change-Id: Ie7dd276f7b4d606660557f3da42064b04dda1435 Signed-off-by: Efraim Flashner <efraim@flashner.co.il> Brennan Vincent 2024-11-28gnu: rust: Update to 1.79....* gnu/packages/rust.scm (rust): Update to 1.79. [source]: Adjust snippet of removed bundled sources. Change-Id: Ic43b4c540413a0e1a08d46cca5a092badc221753 Signed-off-by: Efraim Flashner <efraim@flashner.co.il> Brennan Vincent 2024-11-28gnu: rust: Update to 1.78....* gnu/packages/rust.scm (rust): Update to 1.78. [source]: Adjust removal of bundled source libraries. [arguments]: Add a phase skipping tests requiring crates.io. (rust-1.78)[source]: Add patch. * gnu/packages/patches/rust-1.78-unwinding-fix.patch: New file. * gnu/local.mk (dist_patch_DATA): Register it. Change-Id: I7bf37a9321447ac21644af0e2d023b8bc556da59 Signed-off-by: Efraim Flashner <efraim@flashner.co.il> Brennan Vincent 2024-08-31gnu: make-rust-sysroot/implementation: Use gexps....* gnu/packages/rust.scm (make-rust-sysroot/implementation): Use gexps. Change-Id: Ie35ca201c2a55f00023dad02a0d1121b6f298812 Maxim Cournoyer 2024-08-31gnu: rust: Fix building....* gnu/packages/rust.scm (rust)[arguments]: Adjust 'unpack-compiler-rt phase to correctly copy the sources into the target directory. Adjust 'enable-profiling phase to come after an existing phase. [native-inputs]: Add clang-runtime-source. Change-Id: I2e05fa86c4eaf8c2f5f3562d9f7939cd881cde3f Efraim Flashner 2024-08-31gnu: rust: Add profiling support....* gnu/packages/rust.scm (rust-1.52) [phases] <unpack-profiler-rt, enable-profiling>: New phases. Change-Id: Iecb4aef518e52f71ff7f539778bf0341288a3458 Milkey Mouse 2024-08-31gnu: rust: Run linker under C.UTF-8 instead of en_US.UTF-8....This is a followup to 02d21712be1eb31a917313662b924763e81affb3. * gnu/packages/rust.scm (rust-1.55)[arguments]: In ‘set-linker-locale-to-utf8’, change to C.UTF-8. Change-Id: I94f27123ca8ac4761fd9bae6267c3a9d122b3a1d Ludovic Courtès 2024-08-31gnu: rust: Add 'bash' input for 'wrap-program'....It is required for cross-compilation. * gnu/packages/rust.scm (rust-bootstrap)[inputs]: Add 'bash-minimal'. (rust-1.55)[inputs]: Likewise. Signed-off-by: Maxim Cournoyer <maxim.cournoyer@gmail.com> Change-Id: I8f0f71b236504d6a2e04c5823fbf20f926485992 Maxime Devos