Commit e3a7c410 authored by Dmitry Ivankov's avatar Dmitry Ivankov
Browse files

jemalloc: fix aarch64-darwin build

Switch to default clang11 and apply a patch to fix tests.

The issue is compiler optimizations for unused `malloc` calls
being applied to jemalloc tests with empty `--with-jemalloc-prefix=`.
Tests want to test bad arguments to malloc and optimization broke
such assertions in some of tests, so patch is applied to disable
builtin functions optimizations (only for tests code).

Fixes https://github.com/NixOS/nixpkgs/issues/152056

Patch submission upstream
https://github.com/jemalloc/jemalloc/pull/2340
parent 801d535f
Loading
Loading
Loading
Loading
+9 −0
Original line number Diff line number Diff line
{ lib
, stdenv
, fetchurl
, fetchpatch
# 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.
@@ -19,6 +20,14 @@ stdenv.mkDerivation rec {
    sha256 = "sha256-LbgtHnEZ3z5xt2QCGbbf6EeJvAU3mDw7esT3GJrs/qo=";
  };

  patches = [
    # fix tests under --with-jemalloc-prefix=, see https://github.com/jemalloc/jemalloc/pull/2340
    (fetchpatch {
      url = "https://github.com/jemalloc/jemalloc/commit/d00ecee6a8dfa90afcb1bbc0858985c17bef6559.patch";
      hash = "sha256-N5i4IxGJ4SSAgFiq5oGRnrNeegdk2flw9Sh2mP0yl4c=";
    })
  ];

  # see the comment on stripPrefix
  configureFlags = []
    ++ lib.optional stripPrefix "--with-jemalloc-prefix="
+1 −5
Original line number Diff line number Diff line
@@ -19720,11 +19720,7 @@ with pkgs;
  jbigkit = callPackage ../development/libraries/jbigkit { };
  jemalloc = callPackage ../development/libraries/jemalloc {
    # tests fail with LLVM 11+
    # https://github.com/jemalloc/jemalloc/issues/2091
    stdenv = if stdenv.cc.isClang then llvmPackages_10.stdenv else stdenv;
  };
  jemalloc = callPackage ../development/libraries/jemalloc { };
  jose = callPackage ../development/libraries/jose { };