diff options
Diffstat (limited to 'pkgs/development/libraries/jemalloc/rust.nix')
-rw-r--r-- | pkgs/development/libraries/jemalloc/rust.nix | 24 |
1 files changed, 24 insertions, 0 deletions
diff --git a/pkgs/development/libraries/jemalloc/rust.nix b/pkgs/development/libraries/jemalloc/rust.nix new file mode 100644 index 0000000000000..1a9968933b1e9 --- /dev/null +++ b/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}" + ''; +}) |