diff --git a/bsc/nanos6/git.nix b/bsc/nanos6/git.nix index a18936e..c7605df 100644 --- a/bsc/nanos6/git.nix +++ b/bsc/nanos6/git.nix @@ -11,6 +11,8 @@ , extrae , boost , autoreconfHook +, enableJemalloc ? false +, jemalloc ? null }: with stdenv.lib; @@ -38,6 +40,9 @@ stdenv.mkDerivation rec { export NANOS6_GIT_BRANCH=${branch} ''; + configureFlags = [] ++ + optional enableJemalloc "--with-jemalloc=${jemalloc}"; + # The "bindnow" flags are incompatible with ifunc resolution mechanism. We # disable all by default, which includes bindnow. hardeningDisable = [ "all" ]; diff --git a/overlay.nix b/overlay.nix index 213a2d1..e67f802 100644 --- a/overlay.nix +++ b/overlay.nix @@ -116,6 +116,19 @@ let nanos6Latest = callPackage ./bsc/nanos6/default.nix { }; nanos6Git = callPackage ./bsc/nanos6/git.nix { }; + jemalloc = self.jemalloc.overrideAttrs (old: + { + # Custom nanos6 configure options + configureFlags = old.configureFlags ++ [ + "--with-jemalloc-prefix=nanos6_je_" + "--enable-stats" + ]; + }); + + nanos6Jemalloc = callPackage ./bsc/nanos6/git.nix { + enableJemalloc = true; + }; + babeltrace = callPackage ./bsc/babeltrace/default.nix { }; babeltrace2 = callPackage ./bsc/babeltrace2/default.nix { };