diff options
author | Kyle Evans <kevans@FreeBSD.org> | 2019-12-02 03:40:49 +0000 |
---|---|---|
committer | Kyle Evans <kevans@FreeBSD.org> | 2019-12-02 03:40:49 +0000 |
commit | 2f03a12d35cd39131f9771998d986929951b624c (patch) | |
tree | 5bd1265da0e7c94867cf0e709e3c7b9e11fed0ec /emulators/qemu-user-static-devel/files | |
parent | Update 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.in | 164 |
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" |