2024-06-30 08:16:52 +00:00
|
|
|
{
|
|
|
|
lib,
|
|
|
|
stdenv,
|
|
|
|
jemalloc,
|
|
|
|
writeText,
|
2024-05-02 00:46:19 +00:00
|
|
|
|
2024-06-30 08:16:52 +00:00
|
|
|
unprefixed ? false,
|
2024-05-02 00:46:19 +00:00
|
|
|
}:
|
|
|
|
|
|
|
|
let
|
|
|
|
# On some platforms the unprefixed feature will be ignored:
|
|
|
|
# https://github.com/tikv/jemallocator/blob/ab0676d77e81268cd09b059260c75b38dbef2d51/jemalloc-sys/src/env.rs
|
2024-06-30 08:16:52 +00:00
|
|
|
unprefixed' =
|
|
|
|
unprefixed
|
|
|
|
&& !stdenv.hostPlatform.isMusl
|
|
|
|
&& !stdenv.hostPlatform.isDarwin
|
|
|
|
&& !stdenv.hostPlatform.isAndroid;
|
2024-05-02 00:46:19 +00:00
|
|
|
|
2024-06-30 08:16:52 +00:00
|
|
|
in
|
|
|
|
jemalloc.overrideAttrs (oldAttrs: {
|
|
|
|
configureFlags =
|
|
|
|
oldAttrs.configureFlags
|
|
|
|
++ [ "--with-private-namespace=_rjem_" ]
|
|
|
|
++ lib.optionals (!unprefixed') [ "--with-jemalloc-prefix=_rjem_" ];
|
2024-05-02 00:46:19 +00:00
|
|
|
|
|
|
|
setupHook = writeText "setup-hook.sh" ''
|
|
|
|
export JEMALLOC_OVERRIDE="@out@/lib/libjemalloc${stdenv.hostPlatform.extensions.library}"
|
|
|
|
'';
|
|
|
|
})
|