diff options
Diffstat (limited to 'nixpkgs/pkgs/development/libraries/jemalloc')
-rw-r--r-- | nixpkgs/pkgs/development/libraries/jemalloc/default.nix | 1 | ||||
-rw-r--r-- | nixpkgs/pkgs/development/libraries/jemalloc/rust.nix | 24 |
2 files changed, 25 insertions, 0 deletions
diff --git a/nixpkgs/pkgs/development/libraries/jemalloc/default.nix b/nixpkgs/pkgs/development/libraries/jemalloc/default.nix index 18c492dc93b8..b4625abcd692 100644 --- a/nixpkgs/pkgs/development/libraries/jemalloc/default.nix +++ b/nixpkgs/pkgs/development/libraries/jemalloc/default.nix @@ -48,6 +48,7 @@ stdenv.mkDerivation rec { ; env.NIX_CFLAGS_COMPILE = lib.optionalString stdenv.isDarwin "-Wno-error=array-bounds"; + env.NIX_LDFLAGS = lib.optionalString (stdenv.cc.libcxx != null) "-l${stdenv.cc.libcxx.cxxabi.libName}"; doCheck = true; diff --git a/nixpkgs/pkgs/development/libraries/jemalloc/rust.nix b/nixpkgs/pkgs/development/libraries/jemalloc/rust.nix new file mode 100644 index 000000000000..1a9968933b1e --- /dev/null +++ b/nixpkgs/pkgs/development/libraries/jemalloc/rust.nix @@ -0,0 +1,24 @@ +{ lib +, stdenv +, jemalloc +, writeText + +, unprefixed ? false +}: + +let + # On some platforms the unprefixed feature will be ignored: + # https://github.com/tikv/jemallocator/blob/ab0676d77e81268cd09b059260c75b38dbef2d51/jemalloc-sys/src/env.rs + unprefixed' = unprefixed && !stdenv.hostPlatform.isMusl && !stdenv.hostPlatform.isDarwin && !stdenv.hostPlatform.isAndroid; + +in jemalloc.overrideAttrs (oldAttrs: { + configureFlags = oldAttrs.configureFlags ++ [ + "--with-private-namespace=_rjem_" + ] ++ lib.optionals (!unprefixed') [ + "--with-jemalloc-prefix=_rjem_" + ]; + + setupHook = writeText "setup-hook.sh" '' + export JEMALLOC_OVERRIDE="@out@/lib/libjemalloc${stdenv.hostPlatform.extensions.library}" + ''; +}) |