diff --git a/emulators/qemu-user-static-devel/Makefile b/emulators/qemu-user-static-devel/Makefile index fd2e596d0563..8969ee4d55e4 100644 --- a/emulators/qemu-user-static-devel/Makefile +++ b/emulators/qemu-user-static-devel/Makefile @@ -1,79 +1,79 @@ PORTNAME= qemu PORTVERSION= 6.2.50 -PORTREVISION= 2 +PORTREVISION= 3 CATEGORIES= emulators PKGNAMESUFFIX= -user-static-devel DIST_SUBDIR= qemu/${PORTVERSION} MAINTAINER= emulation@FreeBSD.org COMMENT= QEMU CPU Emulator (github bsd-user branch) WWW= https://www.qemu.org/ LICENSE= GPLv2 LICENSE_FILE= ${WRKSRC}/COPYING ONLY_FOR_ARCHS= amd64 powerpc powerpc64 CONFLICTS_INSTALL= qemu-user-static # When static linking we have a build dependency on libglib-2.0.a, otherwise # we use glib20 in the usual way (shared-lib runtime dependency). BUILD_DEPENDS= ${LOCALBASE}/lib/libglib-2.0.a:devel/glib20 \ bash:shells/bash \ meson>=0.57.1_1:devel/meson USES= bison compiler:c11 cpe gmake ninja:build perl5 pkgconfig python:build USE_GITHUB= yes GH_TUPLE= qemu-bsd-user:qemu-bsd-user:64ff0f053df \ qemu:keycodemapdb:10739aa:keycodemapdb/ui/keycodemapdb HAS_CONFIGURE= yes CONFIGURE_OUTSOURCE= yes USE_PERL5= build USE_RC_SUBR= qemu_user_static SUB_LIST= NAME=qemu_user_static MAKE_ENV= BSD_MAKE="${MAKE}" V=1 CONFIGURE_ARGS= --prefix=${PREFIX} --cc=${CC} \ --localstatedir=/var \ --extra-ldflags=-L${LOCALBASE}/lib \ --extra-cflags=-I${LOCALBASE}/include \ --enable-debug \ --enable-debug-info \ --static \ --python=${PYTHON_CMD} \ --meson=${LOCALBASE}/bin/meson \ --disable-docs --disable-tools --disable-system \ --disable-capstone \ --extra-cflags=-I${WRKSRC}\ -I${LOCALBASE}/include\ -DPREFIX=\\\"\"${PREFIX}\\\"\" TEST_TARGET= check .include QEMU_TARGETS= i386-bsd-user arm-bsd-user ppc-bsd-user .if ${ARCH} == "amd64" || ${ARCH} == "powerpc64" || ${ARCH} == "aarch64" QEMU_TARGETS+= x86_64-bsd-user riscv64-bsd-user ppc64-bsd-user aarch64-bsd-user PLIST_SUB+= 64BIT="" .else PLIST_SUB+= 64BIT="@comment " .endif CONFIGURE_ARGS+= --target-list=${QEMU_TARGETS:ts,} WITHOUT_CPU_CFLAGS=yes #to avoid problems with register allocation CFLAGS:= ${CFLAGS:C/-fno-tree-vrp//} CFLAGS+= -Wno-address-of-packed-member CFLAGS+= -D_WANT_SEMUN QEMU_ARCH= ${ARCH:C/amd64/x86_64/:C/powerpc/ppc/} MAKE_ARGS= ARCH=${QEMU_ARCH} post-install: @${RM} -r ${STAGEDIR}${DATADIR} @${STRIP_CMD} ${STAGEDIR}${PREFIX}/bin/qemu-* @(cd ${STAGEDIR}${PREFIX}/bin && \ for i in qemu-*; do ${MV} -i $$i $$i-static; done) .include diff --git a/emulators/qemu-user-static-devel/files/qemu_user_static.in b/emulators/qemu-user-static-devel/files/qemu_user_static.in index 8db8e171a22a..176114581263 100644 --- a/emulators/qemu-user-static-devel/files/qemu_user_static.in +++ b/emulators/qemu-user-static-devel/files/qemu_user_static.in @@ -1,150 +1,120 @@ #!/bin/sh # 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 } %%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 } run_rc_command "$1"