summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--emulators/Makefile1
-rw-r--r--emulators/gem5/Makefile43
-rw-r--r--emulators/gem5/distinfo2
-rw-r--r--emulators/gem5/files/patch-SConstruct12
-rw-r--r--emulators/gem5/files/patch-util_term_Makefile11
-rw-r--r--emulators/gem5/pkg-descr5
-rw-r--r--emulators/gem5/pkg-plist108
7 files changed, 182 insertions, 0 deletions
diff --git a/emulators/Makefile b/emulators/Makefile
index 46e4e7af53df..5a7168c8e2b0 100644
--- a/emulators/Makefile
+++ b/emulators/Makefile
@@ -42,6 +42,7 @@
SUBDIR += fuse-roms
SUBDIR += fuse-utils
SUBDIR += gbe
+ SUBDIR += gem5
SUBDIR += generator
SUBDIR += generator-cbiere
SUBDIR += gens
diff --git a/emulators/gem5/Makefile b/emulators/gem5/Makefile
new file mode 100644
index 000000000000..20fbd8c7a26f
--- /dev/null
+++ b/emulators/gem5/Makefile
@@ -0,0 +1,43 @@
+# Created by: Veniamin Gvozdikov <vg@FreeBSD.org>
+# $FreeBSD$
+
+PORTNAME= gem5
+PORTVERSION= 0.0.${DATE}
+CATEGORIES= emulators
+MASTER_SITES= GH
+
+MAINTAINER= vg@FreeBSD.org
+COMMENT= gem5 Simulator System
+
+BUILD_DEPENDS= swig2.0:${PORTSDIR}/devel/swig20 \
+ scons:${PORTSDIR}/devel/scons
+
+DATE= 20140422
+USE_GITHUB= yes
+GH_ACCOUNT= CTSRD-CHERI
+GH_TAGNAME= 99d65cc
+SWIG_BIN= swig2.0
+USES= gmake
+
+.include <bsd.port.pre.mk>
+
+.if ${OPSYS} == FreeBSD && ${OSVERSION} < 1000000
+IGNORE= does not support FreeBSD versions < 10.0
+.endif
+
+do-build:
+ cd ${WRKSRC} && ${GMAKE} -C util/term
+ cd ${WRKSRC} && ${SETENV} SWIG="${PREFIX}/bin/${SWIG_BIN}" scons \
+ build/ARM/gem5.opt
+
+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..982859f1d5c7
--- /dev/null
+++ b/emulators/gem5/files/patch-SConstruct
@@ -0,0 +1,12 @@
+--- SConstruct.orig 2015-04-21 17:46:54 UTC
++++ SConstruct
+@@ -534,6 +534,9 @@ Export('MakeAction')
+ 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
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