diff --git a/pkgs/development/libraries/jemalloc/common.nix b/pkgs/development/libraries/jemalloc/common.nix index 5ac1067d92fb..6e83b9637c16 100644 --- a/pkgs/development/libraries/jemalloc/common.nix +++ b/pkgs/development/libraries/jemalloc/common.nix @@ -1,11 +1,15 @@ { version, sha256 }: -{ stdenv, fetchurl, +{ stdenv, fetchurl # 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. # Causes segfaults with some software (ex. rustc), but defaults to true for backward # compatibility. Ignored on non OSX. -stripPrefix ? true }: +, stripPrefix ? true +, disableInitExecTls ? false +}: + +with stdenv.lib; stdenv.mkDerivation rec { name = "jemalloc-${version}"; @@ -17,7 +21,11 @@ stdenv.mkDerivation rec { }; # see the comment on stripPrefix - configureFlags = stdenv.lib.optional (stdenv.isDarwin && stripPrefix) "--with-jemalloc-prefix="; + configureFlags = [] + ++ optional (stdenv.isDarwin && stripPrefix) [ "--with-jemalloc-prefix=" ] + ++ optional disableInitExecTls [ "--disable-initial-exec-tls" ] + ; + doCheck = true; enableParallelBuilding = true; diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 59d4f69004aa..9fa7036932dd 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -13602,6 +13602,7 @@ with pkgs; mariadb = callPackage ../servers/sql/mariadb { asio = asio_1_10; + jemalloc = jemalloc.override ({ disableInitExecTls = true; }); inherit (darwin) cctools; inherit (pkgs.darwin.apple_sdk.frameworks) CoreServices; };