diff --git a/overlay.nix b/overlay.nix index d337347..d4ea269 100644 --- a/overlay.nix +++ b/overlay.nix @@ -21,7 +21,7 @@ let gpi-2 = callPackage ./pkgs/gpi-2/default.nix { }; intelPackages_2023 = callPackage ./pkgs/intel-oneapi/2023.nix { }; jemallocNanos6 = callPackage ./pkgs/nanos6/jemalloc.nix { }; - #lmbench = callPackage ./pkgs/lmbench/default.nix { }; # Broken + lmbench = callPackage ./pkgs/lmbench/default.nix { }; mcxx = callPackage ./pkgs/mcxx/default.nix { }; nanos6 = callPackage ./pkgs/nanos6/default.nix { }; nanos6Debug = final.nanos6.override { enableDebug = true; }; diff --git a/pkgs/lmbench/default.nix b/pkgs/lmbench/default.nix index b822cac..9c48dd1 100644 --- a/pkgs/lmbench/default.nix +++ b/pkgs/lmbench/default.nix @@ -1,19 +1,20 @@ { lib, stdenv, + libtirpc, fetchFromGitHub }: stdenv.mkDerivation rec { pname = "lmbench"; - version = "701c6c35"; + version = "941a0dcc"; # We use the intel repo as they have fixed some problems src = fetchFromGitHub { owner = "intel"; repo = pname; - rev = "701c6c35b0270d4634fb1dc5272721340322b8ed"; - sha256 = "0sf6zk03knkardsfd6qx7drpm56nhg53n885cylkggk83r38idyr"; + rev = "941a0dcc0e7bdd9bb0dee05d7f620e77da8c43af"; + sha256 = "sha256-SzwplRBO3V0R3m3p15n71ivYBMGoLsajFK2TapYxdqk="; }; postUnpack = '' @@ -24,12 +25,19 @@ stdenv.mkDerivation rec { sed -i "s@/bin/rm@rm@g" $(find . -name Makefile) ''; + buildInputs = [ libtirpc ]; + patches = [ ./fix-install.patch ]; + hardeningDisable = [ "all" ]; enableParallelBuilding = false; preBuild = '' - makeFlagsArray+=(BASE=$out) + makeFlagsArray+=( + BASE=$out + CPPFLAGS=-I${libtirpc.dev}/include/tirpc + LDFLAGS=-ltirpc + ) ''; meta = { diff --git a/pkgs/lmbench/fix-install.patch b/pkgs/lmbench/fix-install.patch new file mode 100644 index 0000000..f539254 --- /dev/null +++ b/pkgs/lmbench/fix-install.patch @@ -0,0 +1,10 @@ +--- a/Makefile ++++ b/Makefile +@@ -144,6 +144,7 @@ install-target: + if [ ! -d $(BASE)/include ]; then mkdir $(BASE)/include; fi + if [ ! -d $(BASE)/lib ]; then mkdir $(BASE)/lib; fi + cp $(EXES) $(BASE)/bin ++ cp $(OPT_EXES) $(BASE)/bin + cp $(INCS) $(BASE)/include + cp $O/lmbench.a $(BASE)/lib/libmbench.a + cd ../doc; env MAKEFLAGS="$(MAKEFLAGS)" make CC="${CC}" OS="${OS}" BASE="$(BASE)" install