aboutsummaryrefslogtreecommitdiff
path: root/emulators/gem5
diff options
context:
space:
mode:
authorAntoine Brodin <antoine@FreeBSD.org>2021-01-01 10:11:34 +0000
committerAntoine Brodin <antoine@FreeBSD.org>2021-01-01 10:11:34 +0000
commit26b4c8f71f91d22e081b27814782686edde0c90a (patch)
tree1c321c39372c25d8634e75b5c8e08edc676b296d /emulators/gem5
parent548f16bd1a2915f08878b716eed92ff3267e6de2 (diff)
downloadports-26b4c8f71f91d22e081b27814782686edde0c90a.tar.gz
ports-26b4c8f71f91d22e081b27814782686edde0c90a.zip
Notes
Diffstat (limited to 'emulators/gem5')
-rw-r--r--emulators/gem5/Makefile51
-rw-r--r--emulators/gem5/distinfo2
-rw-r--r--emulators/gem5/files/patch-SConstruct39
-rw-r--r--emulators/gem5/files/patch-src_SConscript11
-rw-r--r--emulators/gem5/files/patch-src_mem_physical.cc14
-rw-r--r--emulators/gem5/files/patch-util_term_Makefile11
-rw-r--r--emulators/gem5/pkg-descr5
-rw-r--r--emulators/gem5/pkg-plist108
8 files changed, 241 insertions, 0 deletions
diff --git a/emulators/gem5/Makefile b/emulators/gem5/Makefile
new file mode 100644
index 000000000000..2802be6fc377
--- /dev/null
+++ b/emulators/gem5/Makefile
@@ -0,0 +1,51 @@
+# Created by: Veniamin Gvozdikov <vg@FreeBSD.org>
+# $FreeBSD$
+
+PORTNAME= gem5
+PORTVERSION= 0.0.${DATE}
+CATEGORIES= emulators
+
+MAINTAINER= ports@FreeBSD.org
+COMMENT= gem5 Simulator System
+
+BUILD_DEPENDS= swig:devel/swig
+
+BROKEN_armv6= fails to link: undefined reference to HDLcd::BUS_OPTIONS_RESETV
+BROKEN_armv7= fails to link: undefined reference to HDLcd::BUS_OPTIONS_RESETV
+BROKEN_i386= does not build
+BROKEN_mips64= fails to build: claims that gcc version 4.6 or newer required
+BROKEN_FreeBSD_11_powerpc64= fails to build: claims that gcc version 4.6 or newer required
+BROKEN_FreeBSD_12_powerpc64= fails to build: claims that gcc version 4.6 or newer required
+
+USES= gmake scons:python2
+
+DATE= 20140422
+USE_GITHUB= yes
+GH_ACCOUNT= CTSRD-CHERI
+GH_TAGNAME= 99d65cc
+
+ALL_TARGET= build/ARM/gem5.opt
+MAKE_ENV= SWIG="${LOCALBASE}/bin/swig"
+
+.include <bsd.port.pre.mk>
+
+post-patch:
+ @${REINPLACE_CMD} -e 's|sys/termios.h|termios.h|' \
+ ${WRKSRC}/src/base/vnc/vncserver.cc \
+ ${WRKSRC}/src/dev/terminal.cc \
+ ${WRKSRC}/util/term/term.c
+
+pre-build:
+ cd ${WRKSRC} && ${GMAKE} -C util/term
+
+do-install:
+ ${MKDIR} ${STAGEDIR}${PREFIX}/${PORTNAME} \
+ ${STAGEDIR}${PREFIX}/${PORTNAME}/ARM
+ (cd ${WRKSRC} && ${COPYTREE_SHARE} configs \
+ ${STAGEDIR}${PREFIX}/${PORTNAME})
+ (cd ${WRKSRC} && ${INSTALL_PROGRAM} build/ARM/gem5.opt \
+ ${STAGEDIR}${PREFIX}/${PORTNAME}/ARM/gem5.opt)
+ (cd ${WRKSRC} && ${INSTALL_PROGRAM} util/term/m5term \
+ ${STAGEDIR}${PREFIX}/bin/m5term)
+
+.include <bsd.port.post.mk>
diff --git a/emulators/gem5/distinfo b/emulators/gem5/distinfo
new file mode 100644
index 000000000000..501feb4fd844
--- /dev/null
+++ b/emulators/gem5/distinfo
@@ -0,0 +1,2 @@
+SHA256 (CTSRD-CHERI-gem5-0.0.20140422-99d65cc_GH0.tar.gz) = 63b4f4a5e266b04396e9732ba64205fd1de22432d3379210d4d4a723dc43329a
+SIZE (CTSRD-CHERI-gem5-0.0.20140422-99d65cc_GH0.tar.gz) = 9007377
diff --git a/emulators/gem5/files/patch-SConstruct b/emulators/gem5/files/patch-SConstruct
new file mode 100644
index 000000000000..7fe253ebda09
--- /dev/null
+++ b/emulators/gem5/files/patch-SConstruct
@@ -0,0 +1,39 @@
+--- SConstruct.orig 2015-04-21 11:32:43.000000000 -0400
++++ SConstruct 2018-03-11 21:17:31.106873000 -0400
+@@ -534,6 +534,9 @@
+ main['LTO_CCFLAGS'] = []
+ main['LTO_LDFLAGS'] = []
+
++# Add pthread
++main.Append(LIBS=['pthread'])
++
+ # According to the readme, tcmalloc works best if the compiler doesn't
+ # assume that we're using the builtin malloc and friends. These flags
+ # are compiler-specific, so we need to set them after we detect which
+@@ -785,13 +788,8 @@
+ swig_flags=Split('-c++ -python -modern -templatereduce $_CPPINCFLAGS')
+ main.Append(SWIGFLAGS=swig_flags)
+
+-# Check for 'timeout' from GNU coreutils. If present, regressions will
+-# be run with a time limit. We require version 8.13 since we rely on
+-# support for the '--foreground' option.
+-timeout_lines = readCommand(['timeout', '--version'],
+- exception='').splitlines()
+-# Get the first line and tokenize it
+-timeout_version = timeout_lines[0].split() if timeout_lines else []
++# It expects GNU timeout, FreeBSD one (on 11.x+) is not compatible
++timeout_version = []
+ main['TIMEOUT'] = timeout_version and \
+ compareVersions(timeout_version[-1], '8.13') >= 0
+
+@@ -922,8 +920,8 @@
+ # version of python, see above for instructions on how to invoke
+ # scons with the appropriate PATH set.
+ #
+- # First we check if python2-config exists, else we use python-config
+- python_config = readCommand(['which', 'python2-config'],
++ # First we check if python2.7-config exists, else we use python-config
++ python_config = readCommand(['which', 'python2.7-config'],
+ exception='').strip()
+ if not os.path.exists(python_config):
+ python_config = readCommand(['which', 'python-config'],
diff --git a/emulators/gem5/files/patch-src_SConscript b/emulators/gem5/files/patch-src_SConscript
new file mode 100644
index 000000000000..50bc9affc724
--- /dev/null
+++ b/emulators/gem5/files/patch-src_SConscript
@@ -0,0 +1,11 @@
+--- src/SConscript.orig 2015-04-21 15:32:43 UTC
++++ src/SConscript
+@@ -165,7 +165,7 @@ class Source(SourceFile):
+ '''specify the source file, and any guards'''
+ super(Source, self).__init__(source, **guards)
+
+- self.Werror = Werror
++ self.Werror = False
+ self.swig = swig
+
+ class PySource(SourceFile):
diff --git a/emulators/gem5/files/patch-src_mem_physical.cc b/emulators/gem5/files/patch-src_mem_physical.cc
new file mode 100644
index 000000000000..a2b568bcb7a0
--- /dev/null
+++ b/emulators/gem5/files/patch-src_mem_physical.cc
@@ -0,0 +1,14 @@
+--- src/mem/physical.cc.orig 2015-04-21 15:32:43 UTC
++++ src/mem/physical.cc
+@@ -62,11 +62,9 @@
+ * host. On OSX the MAP_NORESERVE flag does not exist, so simply make
+ * it 0.
+ */
+-#if defined(__APPLE__)
+ #ifndef MAP_NORESERVE
+ #define MAP_NORESERVE 0
+ #endif
+-#endif
+
+ using namespace std;
+
diff --git a/emulators/gem5/files/patch-util_term_Makefile b/emulators/gem5/files/patch-util_term_Makefile
new file mode 100644
index 000000000000..ac67742092fb
--- /dev/null
+++ b/emulators/gem5/files/patch-util_term_Makefile
@@ -0,0 +1,11 @@
+--- util/term/Makefile.orig 2015-04-22 17:24:04 UTC
++++ util/term/Makefile
+@@ -26,7 +26,7 @@
+ #
+ # Authors: Nathan Binkert
+
+-CC= gcc
++CC= cc
+ CCFLAGS= -g -O0
+
+ default: m5term
diff --git a/emulators/gem5/pkg-descr b/emulators/gem5/pkg-descr
new file mode 100644
index 000000000000..29911213888d
--- /dev/null
+++ b/emulators/gem5/pkg-descr
@@ -0,0 +1,5 @@
+The gem5 simulator is a modular platform for computer system
+architecture research, encompassing system-level architecture
+as well as processor microarchitecture.
+
+WWW: http://www.gem5.org/
diff --git a/emulators/gem5/pkg-plist b/emulators/gem5/pkg-plist
new file mode 100644
index 000000000000..b613858602bc
--- /dev/null
+++ b/emulators/gem5/pkg-plist
@@ -0,0 +1,108 @@
+bin/m5term
+gem5/ARM/gem5.opt
+gem5/configs/boot/ammp.rcS
+gem5/configs/boot/ammp.symbol
+gem5/configs/boot/art.rcS
+gem5/configs/boot/bbench-gb.rcS
+gem5/configs/boot/bbench-ics.rcS
+gem5/configs/boot/bn-app.rcS
+gem5/configs/boot/bonnie.rcS
+gem5/configs/boot/bonnie.symbol
+gem5/configs/boot/bzip.rcS
+gem5/configs/boot/cc1.symbol
+gem5/configs/boot/devtime.rcS
+gem5/configs/boot/equake.rcS
+gem5/configs/boot/equake.symbol
+gem5/configs/boot/gcc.rcS
+gem5/configs/boot/gzip.rcS
+gem5/configs/boot/gzip.symbol
+gem5/configs/boot/hack_back_ckpt.rcS
+gem5/configs/boot/halt.sh
+gem5/configs/boot/iscsi-client.rcS
+gem5/configs/boot/iscsi-server.rcS
+gem5/configs/boot/ls.rcS
+gem5/configs/boot/mcf.rcS
+gem5/configs/boot/mcf.symbol
+gem5/configs/boot/mesa.rcS
+gem5/configs/boot/mesa.symbol
+gem5/configs/boot/micro_ctx.rcS
+gem5/configs/boot/micro_memlat.rcS
+gem5/configs/boot/micro_memlat2mb.rcS
+gem5/configs/boot/micro_memlat8.rcS
+gem5/configs/boot/micro_memlat8mb.rcS
+gem5/configs/boot/micro_stream.rcS
+gem5/configs/boot/micro_streamcopy.rcS
+gem5/configs/boot/micro_streamscale.rcS
+gem5/configs/boot/micro_syscall.rcS
+gem5/configs/boot/micro_tlblat.rcS
+gem5/configs/boot/micro_tlblat2.rcS
+gem5/configs/boot/micro_tlblat3.rcS
+gem5/configs/boot/mutex-test.rcS
+gem5/configs/boot/nat-netperf-maerts-client.rcS
+gem5/configs/boot/nat-netperf-server.rcS
+gem5/configs/boot/nat-netperf-stream-client.rcS
+gem5/configs/boot/nat-spec-surge-client.rcS
+gem5/configs/boot/nat-spec-surge-server.rcS
+gem5/configs/boot/natbox-netperf.rcS
+gem5/configs/boot/natbox-spec-surge.rcS
+gem5/configs/boot/netperf-maerts-client.rcS
+gem5/configs/boot/netperf-rr.rcS
+gem5/configs/boot/netperf-server.rcS
+gem5/configs/boot/netperf-stream-client.rcS
+gem5/configs/boot/netperf-stream-nt-client.rcS
+gem5/configs/boot/netperf-stream-udp-client.rcS
+gem5/configs/boot/netperf-stream-udp-local.rcS
+gem5/configs/boot/nfs-client-dbench.rcS
+gem5/configs/boot/nfs-client-nhfsstone.rcS
+gem5/configs/boot/nfs-client-smallb.rcS
+gem5/configs/boot/nfs-client-tcp-smallb.rcS
+gem5/configs/boot/nfs-client-tcp.rcS
+gem5/configs/boot/nfs-client.rcS
+gem5/configs/boot/nfs-server-nhfsstone.rcS
+gem5/configs/boot/nfs-server.rcS
+gem5/configs/boot/null.rcS
+gem5/configs/boot/ping-client.rcS
+gem5/configs/boot/ping-server.rcS
+gem5/configs/boot/setup
+gem5/configs/boot/spec-surge-client.rcS
+gem5/configs/boot/spec-surge-server.rcS
+gem5/configs/boot/surge-client.rcS
+gem5/configs/boot/surge-server.rcS
+gem5/configs/common/Benchmarks.py
+gem5/configs/common/CacheConfig.py
+gem5/configs/common/Caches.py
+gem5/configs/common/CpuConfig.py
+gem5/configs/common/FSConfig.py
+gem5/configs/common/MemConfig.py
+gem5/configs/common/O3_ARM_v7a.py
+gem5/configs/common/Options.py
+gem5/configs/common/Simulation.py
+gem5/configs/common/SysPaths.py
+gem5/configs/common/cpu2000.py
+gem5/configs/dram/sweep.py
+gem5/configs/example/fs.py
+gem5/configs/example/memcheck.py
+gem5/configs/example/memtest.py
+gem5/configs/example/read_config.py
+gem5/configs/example/ruby_direct_test.py
+gem5/configs/example/ruby_mem_test.py
+gem5/configs/example/ruby_network_test.py
+gem5/configs/example/ruby_random_test.py
+gem5/configs/example/se.py
+gem5/configs/ruby/MESI_Three_Level.py
+gem5/configs/ruby/MESI_Two_Level.py
+gem5/configs/ruby/MI_example.py
+gem5/configs/ruby/MOESI_CMP_directory.py
+gem5/configs/ruby/MOESI_CMP_token.py
+gem5/configs/ruby/MOESI_hammer.py
+gem5/configs/ruby/Network_test.py
+gem5/configs/ruby/Ruby.py
+gem5/configs/splash2/cluster.py
+gem5/configs/splash2/run.py
+gem5/configs/topologies/BaseTopology.py
+gem5/configs/topologies/Cluster.py
+gem5/configs/topologies/Crossbar.py
+gem5/configs/topologies/Mesh.py
+gem5/configs/topologies/MeshDirCorners.py
+gem5/configs/topologies/Pt2Pt.py
+gem5/configs/topologies/Torus.py