summaryrefslogtreecommitdiff
path: root/emulators
diff options
context:
space:
mode:
authoradam <adam@pkgsrc.org>2014-08-17 08:57:01 +0000
committeradam <adam@pkgsrc.org>2014-08-17 08:57:01 +0000
commit7ad253518abbc78c232e9d48dedd084e80c6af76 (patch)
tree9cf2559131dbc4666754e5e654357872af1bb783 /emulators
parent7baae4ee45aefcc355ad3b6505cff4bfadba3805 (diff)
downloadpkgsrc-7ad253518abbc78c232e9d48dedd084e80c6af76.tar.gz
Changes 2.1.0:
Incompatible changes: --------------------- The 82573L NIC was incorrectly treated as an 8254xx model. It no longer works correctly on either Linux (3.14.*) or Windows 7 and has been removed. On x86, migration from QEMU 1.7 to QEMU 2.0 was broken if the guest had PCI bridges or for some number of CPUs (12, 13, 14, 54, 55, 56, 97, 98, 99, 139, 140) are the only ones). QEMU 2.1 fixes this, so that migration from QEMU 1.7 to QEMU 2.1 should always work. However, the fix breaks the following scenarios instead: migration from QEMU 2.0 to QEMU 2.1 with PCI bridges and machine types pc-i440fx-1.7/pc-i440fx-2.0 migration from QEMU 2.0 to QEMU 2.1 with the aforementioned number of CPUs and machine type pc-i440fx-1.7 Future incompatible changes: ---------------------------- Three options are using different names on the command line and in configuration file. In particular: The "acpi" configuration file section matches command-line option "acpitable"; The "boot-opts" configuration file section matches command-line option "boot"; The "smp-opts" configuration file section matches command-line option "smp". Starting with QEMU xyz.jkl, -readconfig will standardize on the name for the command line option. ARM --- Firmware can be passed to the vexpress machine via -bios. Improvements to Allwinner SoC emulation. AArch64 TCG system emulation support. AArch64 SHA and Crypto instruction support. LM32 ---- Support for semihosting. Microblaze ---------- Support for u-boot initrd images. MIPS ---- Support for KVM in the Malta board. more...
Diffstat (limited to 'emulators')
-rw-r--r--emulators/qemu/Makefile5
-rw-r--r--emulators/qemu/PLIST3
-rw-r--r--emulators/qemu/PLIST.Linux8
-rw-r--r--emulators/qemu/distinfo13
-rw-r--r--emulators/qemu/patches/patch-configure14
-rw-r--r--emulators/qemu/patches/patch-hw_char_serial.c86
-rw-r--r--emulators/qemu/patches/patch-hw_virtio_virtio.c69
-rw-r--r--emulators/qemu/patches/patch-qemu-char.c29
-rw-r--r--emulators/qemu/patches/patch-util_hbitmap.c32
9 files changed, 27 insertions, 232 deletions
diff --git a/emulators/qemu/Makefile b/emulators/qemu/Makefile
index 5b13dda125e..c2ca2359178 100644
--- a/emulators/qemu/Makefile
+++ b/emulators/qemu/Makefile
@@ -1,7 +1,6 @@
-# $NetBSD: Makefile,v 1.130 2014/07/11 19:15:08 gson Exp $
+# $NetBSD: Makefile,v 1.131 2014/08/17 08:57:01 adam Exp $
-DISTNAME= qemu-2.0.0
-PKGREVISION= 4
+DISTNAME= qemu-2.1.0
CATEGORIES= emulators
MASTER_SITES= http://wiki.qemu.org/download/
EXTRACT_SUFX= .tar.bz2
diff --git a/emulators/qemu/PLIST b/emulators/qemu/PLIST
index 448968184b0..b074320bf7d 100644
--- a/emulators/qemu/PLIST
+++ b/emulators/qemu/PLIST
@@ -1,4 +1,4 @@
-@comment $NetBSD: PLIST,v 1.38 2014/04/18 15:50:16 adam Exp $
+@comment $NetBSD: PLIST,v 1.39 2014/08/17 08:57:01 adam Exp $
${PLIST.alpha}bin/qemu-alpha
${PLIST.arm}bin/qemu-arm
${PLIST.armeb}bin/qemu-armeb
@@ -133,6 +133,7 @@ share/qemu/s390-zipl.rom
share/qemu/sgabios.bin
share/qemu/slof.bin
share/qemu/spapr-rtas.bin
+share/qemu/u-boot.e500
share/qemu/vgabios-cirrus.bin
share/qemu/vgabios-qxl.bin
share/qemu/vgabios-stdvga.bin
diff --git a/emulators/qemu/PLIST.Linux b/emulators/qemu/PLIST.Linux
index 1d1ec730617..b903a3da3f0 100644
--- a/emulators/qemu/PLIST.Linux
+++ b/emulators/qemu/PLIST.Linux
@@ -1,6 +1,6 @@
-@comment $NetBSD: PLIST.Linux,v 1.2 2013/10/20 17:43:06 joerg Exp $
-libexec/qemu-bridge-helper
-bin/qemu-mipsn32
-bin/qemu-mipsn32el
+@comment $NetBSD: PLIST.Linux,v 1.3 2014/08/17 08:57:01 adam Exp $
bin/qemu-mips64
bin/qemu-mips64el
+bin/qemu-mipsn32
+bin/qemu-mipsn32el
+libexec/qemu-bridge-helper
diff --git a/emulators/qemu/distinfo b/emulators/qemu/distinfo
index e1eedc9024f..ebc629b5897 100644
--- a/emulators/qemu/distinfo
+++ b/emulators/qemu/distinfo
@@ -1,19 +1,16 @@
-$NetBSD: distinfo,v 1.96 2014/07/11 19:15:08 gson Exp $
+$NetBSD: distinfo,v 1.97 2014/08/17 08:57:01 adam Exp $
-SHA1 (qemu-2.0.0.tar.bz2) = cc24a60a93ba697057a67b6a7224b95627eaf1a6
-RMD160 (qemu-2.0.0.tar.bz2) = ecd05e036431c14930ae2455a032495dd7ebaf85
-Size (qemu-2.0.0.tar.bz2) = 12839647 bytes
+SHA1 (qemu-2.1.0.tar.bz2) = b2829491e4c2f3d32f7bc2860c3a19fb31f5e989
+RMD160 (qemu-2.1.0.tar.bz2) = 69f412b2813e0683d753efad39c70a799de2282f
+Size (qemu-2.1.0.tar.bz2) = 23563306 bytes
+SHA1 (patch-configure) = f2535bd3c2513c9474bef83e2d29539cc11e0c66
SHA1 (patch-ef) = 6e57de87f91067e8a9a1388c91133a31b3582b3a
SHA1 (patch-et) = 036e1a254ce40df635dfb6107d2707879467e127
-SHA1 (patch-hw_char_serial.c) = fb6b12afc98bbcc9fa5d6cc5d43de3b28be08d88
SHA1 (patch-hw_display_omap__dss.c) = 6b13242f28e32346bc70548c216c578d98fd3420
SHA1 (patch-hw_net_etraxfs__eth.c) = e5dd1661d60dbcd27b332403e0843500ba9544bc
SHA1 (patch-hw_net_xilinx__axienet.c) = ebcd2676d64ce6f31e4a8c976d4fdf530ad5e8b7
SHA1 (patch-hw_ppc_mac__newworld.c) = 9a0ec3ba0b6da2879fdaba6a7937fb16a02685f5
SHA1 (patch-hw_ppc_mac__oldworld.c) = 46322c77c87be6d517c43466325c344db99cd463
-SHA1 (patch-hw_virtio_virtio.c) = 9aa4553a4eda81fb014b116c2207ec4b59265fca
SHA1 (patch-memory.c) = 14df9c835ca318fc79a8d3a46bb94d2f229277cc
-SHA1 (patch-qemu-char.c) = 8567c5d763cab574a888bb00d150bc5e94facbd7
SHA1 (patch-slirp_tcp__subr.c) = cfc8289384fa987289e32b64532c13a83a890820
SHA1 (patch-user-exec.c) = eb83832c7c9e5f69313f8cad2c2f77b304072556
-SHA1 (patch-util_hbitmap.c) = 7ca62f7f7a82526007d034dfe7d5e2d4ff96f900
diff --git a/emulators/qemu/patches/patch-configure b/emulators/qemu/patches/patch-configure
new file mode 100644
index 00000000000..1a528fb4842
--- /dev/null
+++ b/emulators/qemu/patches/patch-configure
@@ -0,0 +1,14 @@
+$NetBSD: patch-configure,v 1.4 2014/08/17 08:57:01 adam Exp $
+
+L2TPV3 works on Linux; don't turn it on for other platforms.
+
+--- configure.orig 2014-08-17 08:35:26.000000000 +0000
++++ configure
+@@ -1722,6 +1722,7 @@ fi
+ # L2TPV3 probe
+
+ cat > $TMPC <<EOF
++#include <linux/ip.h>
+ #include <sys/socket.h>
+ int main(void) { return sizeof(struct mmsghdr); }
+ EOF
diff --git a/emulators/qemu/patches/patch-hw_char_serial.c b/emulators/qemu/patches/patch-hw_char_serial.c
deleted file mode 100644
index f268a0b9525..00000000000
--- a/emulators/qemu/patches/patch-hw_char_serial.c
+++ /dev/null
@@ -1,86 +0,0 @@
-$NetBSD: patch-hw_char_serial.c,v 1.1 2014/07/11 19:15:08 gson Exp $
-
-Part of fix for qemu bug 1335444, aka PR 48071. From Kirill Batuzov,
-backported to 2.0 by gson.
-
---- hw/char/serial.c.orig 2014-04-17 13:44:44.000000000 +0000
-+++ hw/char/serial.c
-@@ -223,37 +223,42 @@ static gboolean serial_xmit(GIOChannel *
- {
- SerialState *s = opaque;
-
-- if (s->tsr_retry <= 0) {
-- if (s->fcr & UART_FCR_FE) {
-- if (fifo8_is_empty(&s->xmit_fifo)) {
-+ do {
-+ if (s->tsr_retry <= 0) {
-+ if (s->fcr & UART_FCR_FE) {
-+ if (fifo8_is_empty(&s->xmit_fifo)) {
-+ return FALSE;
-+ }
-+ s->tsr = fifo8_pop(&s->xmit_fifo);
-+ if (!s->xmit_fifo.num) {
-+ s->lsr |= UART_LSR_THRE;
-+ }
-+ } else if ((s->lsr & UART_LSR_THRE)) {
- return FALSE;
-- }
-- s->tsr = fifo8_pop(&s->xmit_fifo);
-- if (!s->xmit_fifo.num) {
-+ } else {
-+ s->tsr = s->thr;
- s->lsr |= UART_LSR_THRE;
-+ s->lsr &= ~UART_LSR_TEMT;
- }
-- } else if ((s->lsr & UART_LSR_THRE)) {
-- return FALSE;
-- } else {
-- s->tsr = s->thr;
-- s->lsr |= UART_LSR_THRE;
-- s->lsr &= ~UART_LSR_TEMT;
- }
-- }
-
-- if (s->mcr & UART_MCR_LOOP) {
-- /* in loopback mode, say that we just received a char */
-- serial_receive1(s, &s->tsr, 1);
-- } else if (qemu_chr_fe_write(s->chr, &s->tsr, 1) != 1) {
-- if (s->tsr_retry >= 0 && s->tsr_retry < MAX_XMIT_RETRY &&
-- qemu_chr_fe_add_watch(s->chr, G_IO_OUT, serial_xmit, s) > 0) {
-- s->tsr_retry++;
-- return FALSE;
-+ if (s->mcr & UART_MCR_LOOP) {
-+ /* in loopback mode, say that we just received a char */
-+ serial_receive1(s, &s->tsr, 1);
-+ } else if (qemu_chr_fe_write(s->chr, &s->tsr, 1) != 1) {
-+ if (s->tsr_retry >= 0 && s->tsr_retry < MAX_XMIT_RETRY &&
-+ qemu_chr_fe_add_watch(s->chr, G_IO_OUT|G_IO_HUP,
-+ serial_xmit, s) > 0) {
-+ s->tsr_retry++;
-+ return FALSE;
-+ }
-+ s->tsr_retry = 0;
-+ } else {
-+ s->tsr_retry = 0;
- }
-- s->tsr_retry = 0;
-- } else {
-- s->tsr_retry = 0;
-- }
-+ /* Transmit another byte if it is already available. It is only
-+ possible when FIFO is enabled and not empty. */
-+ } while ((s->fcr & UART_FCR_FE) && !fifo8_is_empty(&s->xmit_fifo));
-
- s->last_xmit_ts = qemu_clock_get_ns(QEMU_CLOCK_VIRTUAL);
-
-@@ -293,7 +298,9 @@ static void serial_ioport_write(void *op
- s->thr_ipending = 0;
- s->lsr &= ~UART_LSR_THRE;
- serial_update_irq(s);
-- serial_xmit(NULL, G_IO_OUT, s);
-+ if (s->tsr_retry <= 0) {
-+ serial_xmit(NULL, G_IO_OUT, s);
-+ }
- }
- break;
- case 1:
diff --git a/emulators/qemu/patches/patch-hw_virtio_virtio.c b/emulators/qemu/patches/patch-hw_virtio_virtio.c
deleted file mode 100644
index 94851ead760..00000000000
--- a/emulators/qemu/patches/patch-hw_virtio_virtio.c
+++ /dev/null
@@ -1,69 +0,0 @@
-$NetBSD: patch-hw_virtio_virtio.c,v 1.1 2014/05/15 12:28:13 wiz Exp $
-
-Fixes for
-http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2013-4151
-http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2013-4535
-http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2013-4536
-http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2013-6399
-http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2014-0182
-from upstream git.
-
---- hw/virtio/virtio.c.orig 2014-04-17 13:44:44.000000000 +0000
-+++ hw/virtio/virtio.c
-@@ -430,6 +430,12 @@ void virtqueue_map_sg(struct iovec *sg,
- unsigned int i;
- hwaddr len;
-
-+ if (num_sg >= VIRTQUEUE_MAX_SIZE) {
-+ error_report("virtio: map attempt out of bounds: %zd > %d",
-+ num_sg, VIRTQUEUE_MAX_SIZE);
-+ exit(1);
-+ }
-+
- for (i = 0; i < num_sg; i++) {
- len = sg[i].iov_len;
- sg[i].iov_base = cpu_physical_memory_map(addr[i], &len, is_write);
-@@ -891,7 +897,9 @@ int virtio_set_features(VirtIODevice *vd
-
- int virtio_load(VirtIODevice *vdev, QEMUFile *f)
- {
-- int num, i, ret;
-+ int i, ret;
-+ int32_t config_len;
-+ uint32_t num;
- uint32_t features;
- uint32_t supported_features;
- BusState *qbus = qdev_get_parent_bus(DEVICE(vdev));
-@@ -906,6 +914,9 @@ int virtio_load(VirtIODevice *vdev, QEMU
- qemu_get_8s(f, &vdev->status);
- qemu_get_8s(f, &vdev->isr);
- qemu_get_be16s(f, &vdev->queue_sel);
-+ if (vdev->queue_sel >= VIRTIO_PCI_QUEUE_MAX) {
-+ return -1;
-+ }
- qemu_get_be32s(f, &features);
-
- if (virtio_set_features(vdev, features) < 0) {
-@@ -914,11 +925,21 @@ int virtio_load(VirtIODevice *vdev, QEMU
- features, supported_features);
- return -1;
- }
-- vdev->config_len = qemu_get_be32(f);
-+ config_len = qemu_get_be32(f);
-+ if (config_len != vdev->config_len) {
-+ error_report("Unexpected config length 0x%x. Expected 0x%zx",
-+ config_len, vdev->config_len);
-+ return -1;
-+ }
- qemu_get_buffer(f, vdev->config, vdev->config_len);
-
- num = qemu_get_be32(f);
-
-+ if (num > VIRTIO_PCI_QUEUE_MAX) {
-+ error_report("Invalid number of PCI queues: 0x%x", num);
-+ return -1;
-+ }
-+
- for (i = 0; i < num; i++) {
- vdev->vq[i].vring.num = qemu_get_be32(f);
- if (k->has_variable_vring_alignment) {
diff --git a/emulators/qemu/patches/patch-qemu-char.c b/emulators/qemu/patches/patch-qemu-char.c
deleted file mode 100644
index 67d4f903063..00000000000
--- a/emulators/qemu/patches/patch-qemu-char.c
+++ /dev/null
@@ -1,29 +0,0 @@
-$NetBSD: patch-qemu-char.c,v 1.1 2014/07/11 19:15:08 gson Exp $
-
-Part of fix for qemu bug 1335444, aka PR 48071. From Kirill Batuzov.
-
---- qemu-char.c.orig 2014-04-17 13:44:45.000000000 +0000
-+++ qemu-char.c
-@@ -519,6 +519,12 @@ static Notifier muxes_realize_notify = {
- .notify = muxes_realize_done,
- };
-
-+static GSource *mux_chr_add_watch(CharDriverState *s, GIOCondition cond)
-+{
-+ MuxDriver *d = s->opaque;
-+ return d->drv->chr_add_watch(d->drv, cond);
-+}
-+
- static CharDriverState *qemu_chr_open_mux(CharDriverState *drv)
- {
- CharDriverState *chr;
-@@ -535,6 +541,9 @@ static CharDriverState *qemu_chr_open_mu
- chr->chr_accept_input = mux_chr_accept_input;
- /* Frontend guest-open / -close notification is not support with muxes */
- chr->chr_set_fe_open = NULL;
-+ if (drv->chr_add_watch) {
-+ chr->chr_add_watch = mux_chr_add_watch;
-+ }
- /* only default to opened state if we've realized the initial
- * set of muxes
- */
diff --git a/emulators/qemu/patches/patch-util_hbitmap.c b/emulators/qemu/patches/patch-util_hbitmap.c
deleted file mode 100644
index 23cbc6e1ede..00000000000
--- a/emulators/qemu/patches/patch-util_hbitmap.c
+++ /dev/null
@@ -1,32 +0,0 @@
-$NetBSD: patch-util_hbitmap.c,v 1.3 2014/01/15 18:26:20 wiz Exp $
-
-Avoid conflicts against popcountl(3) in NetBSD's libc.
-
---- util/hbitmap.c.orig 2013-11-27 22:15:55.000000000 +0000
-+++ util/hbitmap.c
-@@ -92,7 +92,7 @@ struct HBitmap {
- unsigned long *levels[HBITMAP_LEVELS];
- };
-
--static inline int popcountl(unsigned long l)
-+static inline int qemu_popcountl(unsigned long l)
- {
- return BITS_PER_LONG == 32 ? ctpop32(l) : ctpop64(l);
- }
-@@ -200,14 +200,14 @@ static uint64_t hb_count_between(HBitmap
- if (pos >= (end >> BITS_PER_LEVEL)) {
- break;
- }
-- count += popcountl(cur);
-+ count += qemu_popcountl(cur);
- }
-
- if (pos == (end >> BITS_PER_LEVEL)) {
- /* Drop bits representing the END-th and subsequent items. */
- int bit = end & (BITS_PER_LONG - 1);
- cur &= (1UL << bit) - 1;
-- count += popcountl(cur);
-+ count += qemu_popcountl(cur);
- }
-
- return count;