9684e6f3d7
Changes: System emulation Device emulation Audio The HDA device emulation now includes a mixer by default. Previously this had to be enabled with the configure argument "--enable-mixemu" when building QEMU. Audio will work correctly on systems without OSS (/dev/dsp). On previous versions, those systems needed special arguments to "configure" for audio to work out of the box. Audio honors the QEMU_AUDIO_TIMER_PERIOD environment variable and has less CPU utilization by default than previous versions. Block devices Support for the LSI 53C810 SCSI HBA, which unlike the 895A is supported on some very old Windows NT versions. Device assignment VFIO now supports setting CPU affinity on MSI interrupts. VFIO can now reset assigned devices much more reliably using either PCI function-level reset (FLR), power management, or a reset (done by the kernel) of the parent bridge. Several improvements to the reliability of using option ROMs for devices that are assigned with VFIO. USB Performance and functionality improvements for USB 3.0. MicroBlaze Can now specify an initrd on the command line. PowerPC PowerPC now supports the dump-guest-memory command. s390x The "nmi" command will trigger a crash dump from kdump, using a RESTART interrupt. The SCLP line-mode console ("operating system messages") can be accessed with "-device sclplmconsole". x86 ACPI tables can be generated by QEMU and can be used by firmware directly. This will in the future enable new features without modifications of all firmware components (SeaBIOS, OVMF, CoreBoot) Initial support for supporting more than 1TB of RAM (but firmware does not yet support this). Xen HVM domains can now resume from suspend-to-RAM (S3) state. Monitor Subcommands (like "info block") can now autocomplete their options. Help for a single subcommand can be printed with a monitor command such as "help info block". New commands "blockdev-snapshot-internal-sync", "blockdev-snapshot-delete-internal-sync" improve support for internal qcow2 snapshot. New command "blockdev-add" provides a QMP interface for block device hotplug. Block devices The throttling algorithm has been rewritten; the new code is more robust, and supports configuration of separate limits for sustained I/O vs. I/O bursts Migration Migration was broken from QEMU <= 1.5 to 1.6; the new release fixes it. User-mode emulation M68K ColdFire emulation supports atomic system calls. Block devices, qemu-img, qemu-io The sheepdog driver supports automatic reconnect after network errors The VMDK driver supports files produced by VMWare ESX. The qcow2 driver can detect some cases of corruption, and will prevent writing to a corrupted image. The VHDX driver supports creating and writing .vhdx images. The metadata of a file (where each sector of the guest image is stored in the file on the host) can be dumped in human-readable or JSON format using a new command "qemu-img map". Guest agent The "filesystem freeze/thaw" commands are now supported on Windows too, where they will invoke the native Volume Shadow Copy Service (VSS). Miscellaneous For targets that have no embedded disassembler, QEMU will now produce hexadecimal dumps instead of just emitting an error when a disassembly is requested. The enclosed script disas-objdump.pl can be used, together with an external objdump program, to convert the dump to a readable disassembly. Host support TCG now runs on x32 hosts. Known issues On Win32, QEMU must be compiled with --disable-coroutine-pool to work around a suspected compiler bug. The GTK terminal windows (monitor, serial console, parallel, ...) are still unusable in TCG mode: they lose characters and can raise deadlocks.
103 lines
3.1 KiB
Makefile
103 lines
3.1 KiB
Makefile
# $NetBSD: Makefile,v 1.121 2014/01/15 18:26:20 wiz Exp $
|
|
|
|
DISTNAME= qemu-1.7.0
|
|
CATEGORIES= emulators
|
|
MASTER_SITES= http://wiki.qemu.org/download/
|
|
EXTRACT_SUFX= .tar.bz2
|
|
|
|
MAINTAINER= pkgsrc-users@NetBSD.org
|
|
HOMEPAGE= http://www.qemu.org/
|
|
COMMENT= CPU emulator using dynamic translation
|
|
LICENSE= gnu-gpl-v2 AND gnu-lgpl-v2.1 AND mit AND modified-bsd
|
|
|
|
CONFLICTS+= qemu-bin-[0-9]*
|
|
NOT_FOR_PLATFORM= NetBSD-1.[0-6]*-*
|
|
# qemu 1 does not work on NetBSD-5; see http://gnats.netbsd.org/46565.
|
|
# As a workaround, use emulators/qemu0.
|
|
NOT_FOR_PLATFORM= NetBSD-5*-*
|
|
|
|
USE_TOOLS+= bison gmake makeinfo perl:build pkg-config
|
|
USE_NCURSES= yes # requires resize_term()
|
|
UNLIMIT_RESOURCES= datasize
|
|
HAS_CONFIGURE= yes
|
|
|
|
BUILD_DEPENDS+= texi2html-[0-9]*:../../textproc/texi2html
|
|
|
|
.include "options.mk"
|
|
|
|
.include "../../mk/bsd.prefs.mk"
|
|
|
|
CONFIGURE_ARGS+= --prefix=${PREFIX}
|
|
CONFIGURE_ARGS+= --interp-prefix=${PREFIX}/share/qemu
|
|
CONFIGURE_ARGS+= --sysconfdir=${PKG_SYSCONFDIR}
|
|
CONFIGURE_ARGS+= --python=${PYTHONBIN}
|
|
CONFIGURE_ARGS+= --smbd=${PREFIX}/sbin/smbd
|
|
CONFIGURE_ARGS+= --mandir=${PREFIX}/${PKGMANDIR}
|
|
CONFIGURE_ARGS+= --enable-curses
|
|
#HF#CONFIGURE_ARGS+= --disable-fdt # HF: build on OS X
|
|
CONFIGURE_ENV+= mansuffix=/${PKGMANDIR}
|
|
|
|
CONF_FILES= ${EGDIR}/target-x86_64.conf \
|
|
${PKG_SYSCONFDIR}/target-x86_64.conf
|
|
EGDIR= ${PREFIX}/share/examples/qemu
|
|
INSTALL_MAKE_FLAGS= egdir=${EGDIR}
|
|
PKG_SYSCONFSUBDIR= qemu
|
|
|
|
REPLACE_PERL+= scripts/texi2pod.pl
|
|
|
|
BUILDLINK_PASSTHRU_DIRS+= /usr/lib
|
|
BUILDLINK_PASSTHRU_RPATHDIRS+= /usr/lib
|
|
|
|
INSTALLATION_DIRS= ${PKGMANDIR}/man1 share/doc/qemu
|
|
|
|
UE_ARCHS+= alpha arm armeb cris i386 m68k microblaze mips mipsel
|
|
UE_ARCHS+= or32 ppc ppc64 ppc64abi32 sh4 sh4eb sparc sparc32plus
|
|
UE_ARCHS+= sparc64 x86_64 microblazeel s390x unicore32
|
|
|
|
.if ${OPSYS} == "NetBSD"
|
|
. if (!empty(OS_VERSION:M5.99.*) || !empty(OS_VERSION:M[6-9].*))
|
|
# XXX
|
|
# i386 and x86_64 user emul require newer binutils for PROVIDE_HIDDEN()
|
|
# http://git.qemu.org/qemu.git/commit/?id=845f2c2812d9ed24b36c02a3d06ee83aeafe8b49
|
|
# but binutils-2.19 was enabled around 5.99.22:
|
|
# http://cvsweb.NetBSD.org/bsdweb.cgi/src/share/mk/bsd.own.mk#rev1.594
|
|
USER_EMUL= i386 x86_64 sparc sparc64
|
|
. else
|
|
CONFIGURE_ARGS+= --disable-bsd-user
|
|
USER_EMUL=
|
|
. endif
|
|
PLIST.nbd= YES
|
|
.elif !empty(OPSYS:M*BSD) || !empty(OPSYS:MDragonFly)
|
|
USER_EMUL= i386 x86_64 sparc sparc64
|
|
PLIST.nbd= YES
|
|
.elif !empty(OPSYS:MDarwin)
|
|
USER_EMUL=
|
|
CONFIGURE_ARGS+= --disable-bsd-user
|
|
PLIST.nbd= YES
|
|
.elif !empty(OPSYS:MLinux)
|
|
USER_EMUL= ${UE_ARCHS}
|
|
PLIST.nbd= YES
|
|
.elif !empty(MACHINE_PLATFORM:MSunOS-5.11-*)
|
|
PLIST.nbd= YES
|
|
.endif
|
|
|
|
PLIST_VARS+= ${UE_ARCHS} nbd
|
|
.for _var_ in ${USER_EMUL}
|
|
PLIST.${_var_}= YES
|
|
.endfor
|
|
|
|
post-install:
|
|
${INSTALL_DATA} ${FILESDIR}/Makefile.multinode-NetBSD \
|
|
${DESTDIR}${PREFIX}/share/doc/qemu/
|
|
|
|
# On Darwin, qemu uses Cocoa and CoreAudio
|
|
.if empty(OPSYS:MDarwin)
|
|
.include "../../mk/oss.buildlink3.mk"
|
|
.endif
|
|
.include "../../devel/glib2/buildlink3.mk"
|
|
.include "../../devel/ncurses/buildlink3.mk"
|
|
.include "../../devel/zlib/buildlink3.mk"
|
|
.include "../../lang/python/extension.mk"
|
|
.include "../../x11/pixman/buildlink3.mk"
|
|
.include "../../mk/pthread.buildlink3.mk"
|
|
.include "../../mk/bsd.pkg.mk"
|