summaryrefslogtreecommitdiff
path: root/emulators/qemu-user-static-devel/files
diff options
context:
space:
mode:
authorKyle Evans <kevans@FreeBSD.org>2019-12-02 03:40:49 +0000
committerKyle Evans <kevans@FreeBSD.org>2019-12-02 03:40:49 +0000
commit2f03a12d35cd39131f9771998d986929951b624c (patch)
tree5bd1265da0e7c94867cf0e709e3c7b9e11fed0ec /emulators/qemu-user-static-devel/files
parentUpdate to 2.5.0. (diff)
NEW PORT: emulators/qemu-user-static-devel: QEMU user-mode emulation
This port represents the to-be-released version of qemu-user-static for testing prior to unleashing it upon the community at large and the package building infrastructure. Currently, it is based on the bsd-user-rebase-3.1 branch that moves the base qemu version of this work forward. The main highlight of the update to 3.1 is initial riscv64 bsd-user support, submitted by Embecosm. This version of the port is also notably no longer based on the master port, qemu-sbruno, but repocopied from it due to reusing a good portion of it. As such, it's been severely reduced to eliminate all of the bits not relevant to building bsd-user/ (including the various port options), so much of the diff is eliminating the option-enabled checks and combining them all into a single CONFIGURE_ARGS/MAKE_ARGS, along with some additional --disable-flags for things that we certainly don't need. The python2.7 version restriction has been dropped as qemu's actually supported py3+ since at least the 2.x version we have over in qemu-sbruno, A follow-up commit will also drop the version restrictions in the other qemu ports that still have it to be proactive about this stuff as Python2 reaches EOL. Q/A: * portlint: looks fine * testport: 11.3, -CURRENT; amd64 PR: 242253 Reviewed by: koobs (ports) Approved by: koobs (ports)
Notes
Notes: svn path=/head/; revision=518822
Diffstat (limited to 'emulators/qemu-user-static-devel/files')
-rw-r--r--emulators/qemu-user-static-devel/files/qemu_user_static.in164
1 files changed, 164 insertions, 0 deletions
diff --git a/emulators/qemu-user-static-devel/files/qemu_user_static.in b/emulators/qemu-user-static-devel/files/qemu_user_static.in
new file mode 100644
index 000000000000..4022421f8963
--- /dev/null
+++ b/emulators/qemu-user-static-devel/files/qemu_user_static.in
@@ -0,0 +1,164 @@
+#!/bin/sh
+#
+# $FreeBSD$
+#
+
+# PROVIDE: %%NAME%%
+# REQUIRE: LOGIN
+# KEYWORD: shutdown
+
+# Add the following lines to /etc/rc.conf to enable `%%NAME%%':
+#
+# %%NAME%%_enable="YES"
+#
+
+. /etc/rc.subr
+
+name=%%NAME%%
+rcvar=%%NAME%%_enable
+
+# read configuration and set defaults
+load_rc_config "$name"
+
+: ${%%NAME%%_enable:="NO"}
+
+BINMISCCTL=/usr/sbin/binmiscctl
+QEMU_DIR=%%PREFIX%%/bin
+QEMU_PREFIX=qemu-
+QEMU_SUFFIX=-static
+
+start_cmd=%%NAME%%_start
+stop_cmd=%%NAME%%_stop
+extra_commands=list
+list_cmd="${BINMISCCTL} list"
+
+%%NAME%%_start()
+{
+ # register arm interpreter styled 'arm'
+ interpreter=${QEMU_DIR}/${QEMU_PREFIX}arm${QEMU_SUFFIX}
+ if [ -x "${interpreter}" ]; then
+ ${BINMISCCTL} add arm --interpreter "${interpreter}" \
+ --magic "\x7f\x45\x4c\x46\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x28\x00" \
+ --mask "\xff\xff\xff\xff\xff\xff\xff\x00\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xff\xff\xff" \
+ --size 20 --set-enabled
+ else
+ echo "$0: interpreter ${interpreter} not found, cannot register."
+ fi
+ # register armv6 interpreter styled 'arm'
+ interpreter=${QEMU_DIR}/${QEMU_PREFIX}arm${QEMU_SUFFIX}
+ if [ -x "${interpreter}" ]; then
+ ${BINMISCCTL} add armv6 --interpreter "${interpreter}" \
+ --magic "\x7f\x45\x4c\x46\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x28\x00" \
+ --mask "\xff\xff\xff\xff\xff\xff\xff\x00\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xff\xff\xff" \
+ --size 20 --set-enabled
+ else
+ echo "$0: interpreter ${interpreter} not found, cannot register."
+ fi
+ # register armv7 interpreter styled 'arm'
+ interpreter=${QEMU_DIR}/${QEMU_PREFIX}arm${QEMU_SUFFIX}
+ if [ -x "${interpreter}" ]; then
+ ${BINMISCCTL} add armv7 --interpreter "${interpreter}" \
+ --magic "\x7f\x45\x4c\x46\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x28\x00" \
+ --mask "\xff\xff\xff\xff\xff\xff\xff\x00\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xff\xff\xff" \
+ --size 20 --set-enabled
+ else
+ echo "$0: interpreter ${interpreter} not found, cannot register."
+ fi
+ # register aarch64 interpreter styled 'aarch64'
+ interpreter=${QEMU_DIR}/${QEMU_PREFIX}aarch64${QEMU_SUFFIX}
+ if [ -x "${interpreter}" ]; then
+ ${BINMISCCTL} add aarch64 --interpreter "${interpreter}" \
+ --magic "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\xb7\x00" \
+ --mask "\xff\xff\xff\xff\xff\xff\xff\x00\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xff\xff\xff" \
+ --size 20 --set-enabled
+ else
+ echo "$0: interpreter ${interpreter} not found, cannot register."
+ fi
+ # register mips interpreter styled 'mips'
+ interpreter=${QEMU_DIR}/${QEMU_PREFIX}mips${QEMU_SUFFIX}
+ if [ -x "${interpreter}" ]; then
+ ${BINMISCCTL} add mips --interpreter "${interpreter}" \
+ --magic "\x7f\x45\x4c\x46\x01\x02\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x08" \
+ --mask "\xff\xff\xff\xff\xff\xff\xff\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xff\xff" \
+ --size 20 --set-enabled
+ else
+ echo "$0: interpreter ${interpreter} not found, cannot register."
+ fi
+ # register mipsle interpreter styled 'mipsel'
+ interpreter=${QEMU_DIR}/${QEMU_PREFIX}mipsel${QEMU_SUFFIX}
+ if [ -x "${interpreter}" ]; then
+ ${BINMISCCTL} add mipsel --interpreter "${interpreter}" \
+ --magic "\x7f\x45\x4c\x46\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x08\x00" \
+ --mask "\xff\xff\xff\xff\xff\xff\xff\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xff\xff" \
+ --size 20 --set-enabled
+ else
+ echo "$0: interpreter ${interpreter} not found, cannot register."
+ fi
+ # register mips64 interpreter styled 'mips64'
+ interpreter=${QEMU_DIR}/${QEMU_PREFIX}mips64${QEMU_SUFFIX}
+ if [ -x "${interpreter}" ]; then
+ ${BINMISCCTL} add mips64 --interpreter "${interpreter}" \
+ --magic "\x7f\x45\x4c\x46\x02\x02\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x08" \
+ --mask "\xff\xff\xff\xff\xff\xff\xff\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xff\xff" \
+ --size 20 --set-enabled
+ else
+ echo "$0: interpreter ${interpreter} not found, cannot register."
+ fi
+ # register powerpc interpreter styled 'ppc'
+ interpreter=${QEMU_DIR}/${QEMU_PREFIX}ppc${QEMU_SUFFIX}
+ if [ -x "${interpreter}" ]; then
+ ${BINMISCCTL} add powerpc --interpreter "${interpreter}" \
+ --magic "\x7f\x45\x4c\x46\x01\x02\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x14" \
+ --mask "\xff\xff\xff\xff\xff\xff\xff\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xff\xff" \
+ --size 20 --set-enabled
+ else
+ echo "$0: interpreter ${interpreter} not found, cannot register."
+ fi
+ # register powerpc64 interpreter styled 'ppc64'
+ interpreter=${QEMU_DIR}/${QEMU_PREFIX}ppc64${QEMU_SUFFIX}
+ if [ -x "${interpreter}" ]; then
+ ${BINMISCCTL} add powerpc64 --interpreter "${interpreter}" \
+ --magic "\x7f\x45\x4c\x46\x02\x02\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x15" \
+ --mask "\xff\xff\xff\xff\xff\xff\xff\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xff\xff" \
+ --size 20 --set-enabled
+ else
+ echo "$0: interpreter ${interpreter} not found, cannot register."
+ fi
+ # register riscv64 interpreter styled 'riscv64'
+ interpreter=${QEMU_DIR}/${QEMU_PREFIX}riscv64${QEMU_SUFFIX}
+ if [ -x "${interpreter}" ]; then
+ ${BINMISCCTL} add riscv64 --interpreter "${interpreter}" \
+ --magic "\x7f\x45\x4c\x46\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\xf3\x00" \
+ --mask "\xff\xff\xff\xff\xff\xff\xff\x00\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xff\xff\xff" \
+ --size 20 --set-enabled
+ else
+ echo "$0: interpreter ${interpreter} not found, cannot register."
+ fi
+ # register sparc64 interpreter styled 'sparc64'
+ interpreter=${QEMU_DIR}/${QEMU_PREFIX}sparc64${QEMU_SUFFIX}
+ if [ -x "${interpreter}" ]; then
+ ${BINMISCCTL} add sparc64 --interpreter "${interpreter}" \
+ --magic "\x7f\x45\x4c\x46\x02\x02\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x2b" \
+ --mask "\xff\xff\xff\xff\xff\xff\xff\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xff\xff" \
+ --size 20 --set-enabled
+ else
+ echo "$0: interpreter ${interpreter} not found, cannot register."
+ fi
+}
+
+%%NAME%%_stop()
+{
+ ${BINMISCCTL} remove arm
+ ${BINMISCCTL} remove armv6
+ ${BINMISCCTL} remove armv7
+ ${BINMISCCTL} remove aarch64
+ ${BINMISCCTL} remove mips
+ ${BINMISCCTL} remove mips64
+ ${BINMISCCTL} remove mipsel
+ ${BINMISCCTL} remove powerpc
+ ${BINMISCCTL} remove powerpc64
+ ${BINMISCCTL} remove riscv64
+ ${BINMISCCTL} remove sparc64
+}
+
+run_rc_command "$1"