summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndrew W Elble <aweits@rit.edu>2024-10-27 01:28:26 -0400
committerGitHub <noreply@github.com>2024-10-27 06:28:26 +0100
commit2761e650fafde1946623820cbe881e1d3f0b86f9 (patch)
treecede3a467a8f64e66b152061d0e593ba8fbf313a
parent84ea389017c7706a437b7d1e98191eeb4f7b9858 (diff)
downloadspack-2761e650fafde1946623820cbe881e1d3f0b86f9.tar.gz
spack-2761e650fafde1946623820cbe881e1d3f0b86f9.tar.bz2
spack-2761e650fafde1946623820cbe881e1d3f0b86f9.tar.xz
spack-2761e650fafde1946623820cbe881e1d3f0b86f9.zip
gem5: new package (#47218)
-rw-r--r--var/spack/repos/builtin/packages/gem5/package.py70
1 files changed, 70 insertions, 0 deletions
diff --git a/var/spack/repos/builtin/packages/gem5/package.py b/var/spack/repos/builtin/packages/gem5/package.py
new file mode 100644
index 0000000000..f18a478c3b
--- /dev/null
+++ b/var/spack/repos/builtin/packages/gem5/package.py
@@ -0,0 +1,70 @@
+# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
+# Spack Project Developers. See the top-level COPYRIGHT file for details.
+#
+# SPDX-License-Identifier: (Apache-2.0 OR MIT)
+
+
+from spack.package import *
+
+
+class Gem5(SConsPackage):
+ """The gem5 simulator is a modular platform for computer-system
+ architecture research, encompassing system-level architecture as
+ well as processor microarchitecture. gem5 is a community led
+ project with an open governance model. gem5 was originally
+ conceived for computer architecture research in academia, but it
+ has grown to be used in computer system design by academia,
+ industry for research, and in teaching."""
+
+ homepage = "https://www.gem5.org"
+ git = "https://github.com/gem5/gem5"
+ url = "https://github.com/gem5/gem5/archive/refs/tags/v24.0.0.0.tar.gz"
+
+ version("24.0.0.1", tag="v24.0.0.1", commit="b1a44b89c7bae73fae2dc547bc1f871452075b85")
+ version("24.0.0.0", tag="v24.0.0.0", commit="43769abaf05120fed1e4e0cfbb34619edbc10f3f")
+
+ depends_on("c", type="build")
+ depends_on("cxx", type="build")
+ depends_on("scons", type="build")
+ depends_on("py-mypy", type="build")
+ depends_on("py-pybind11", type="build")
+ depends_on("python")
+ depends_on("gettext")
+ depends_on("hdf5+cxx")
+ depends_on("protobuf")
+ depends_on("gperftools")
+ depends_on("graphviz+pangocairo", type=("build", "run"))
+ depends_on("py-pydot", type=("build", "run"))
+ depends_on("capstone")
+
+ def patch(self):
+ filter_file(
+ " Environment(tools=[",
+ " Environment(ENV=os.environ, tools=[",
+ "SConstruct",
+ string=True,
+ )
+ filter_file(
+ """conf.env['CONF']['HAVE_PERF_ATTR_EXCLUDE_HOST'] = conf.CheckMember(""",
+ """conf.env['CONF']['HAVE_PERF_ATTR_EXCLUDE_HOST'] = bool(conf.CheckMember(""",
+ "src/cpu/kvm/SConsopts",
+ string=True,
+ )
+ filter_file(
+ """perf_event_attr', 'exclude_host')""",
+ """perf_event_attr', 'exclude_host'))""",
+ "src/cpu/kvm/SConsopts",
+ string=True,
+ )
+
+ def install(self, spec, prefix):
+ mkdirp(prefix.bin)
+ install("build/ALL/gem5.opt", prefix.bin)
+
+ def build_args(self, spec, prefix):
+ args = []
+ args.append("build/ALL/gem5.opt")
+ args.append(f"-j{spack.config.determine_number_of_jobs(parallel=True)}")
+ args.append("--ignore-style")
+
+ return args