From 04b6e1fa94ebfa2b788875515dcf66de98d0fb3f Mon Sep 17 00:00:00 2001 From: Alejandro Soto Date: Tue, 13 Jun 2023 00:40:16 -0600 Subject: pkgs/gem5: initial commit --- pkgs/gem5.nix | 64 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 64 insertions(+) create mode 100644 pkgs/gem5.nix (limited to 'pkgs/gem5.nix') diff --git a/pkgs/gem5.nix b/pkgs/gem5.nix new file mode 100644 index 0000000..f9aebd7 --- /dev/null +++ b/pkgs/gem5.nix @@ -0,0 +1,64 @@ +{ boost +, lib +, fetchFromGitHub +, gnum4 +, gperftools +, hdf5-cpp +, libpng +, protobuf +, scons +, stdenv +, zlib +, enableHdf5 ? true +, enableLibpng ? true +, enableTrace ? true +, enableSystemC ? true +, enableTcmalloc ? true +, gem5ISA +}: +let + version = "22.1.0.0"; + + isa = assert lib.assertMsg (lib.elem gem5ISA [ "arm" "null" "mips" "power" "x86" ]) + "${gem5ISA} is not a valid gem5 target ISA"; + lib.toUpper gem5ISA; + + target = "build/${isa}/gem5.opt"; +in +stdenv.mkDerivation { + pname = "gem5"; + version = "${gem5ISA}-${version}"; + + src = fetchFromGitHub { + repo = "gem5"; + owner = "gem5"; + + rev = "v${version}"; + sha256 = "sha256-Yxag8emR6hf7oX4GAtQi/YYcKrpXicUoQg5+rjKyjc0="; + }; + + buildInputs = [ zlib ] + ++ lib.optional enableHdf5 hdf5-cpp + ++ lib.optional enableLibpng libpng + ++ lib.optional enableTrace boost + ++ lib.optional enableSystemC protobuf + ++ lib.optional enableTcmalloc gperftools; + + nativeBuildInputs = [ gnum4 scons ]; + + sconsFlags = [ target ]; + + enableParallelBuilding = true; + + # Without this we get "ValueError: invalid width 0 (must be > 0)" + COLUMNS = 80; + + postPatch = '' + patchShebangs util/ + ''; + + installPhase = '' + mkdir -p $out/bin/ + cp ${target} $out/bin/ + ''; +} -- cgit v1.2.3