summaryrefslogtreecommitdiff
path: root/emulators
diff options
context:
space:
mode:
authortsutsui <tsutsui>2010-05-17 14:31:07 +0000
committertsutsui <tsutsui>2010-05-17 14:31:07 +0000
commit44f4325b7453b4b7443470f570a33a4f67013e87 (patch)
tree29ff7f437e3ff03f4326ada559ef7a506ce89070 /emulators
parentfa13ef9737ce8c15463ffe934c59664f4e42bb6a (diff)
downloadpkgsrc-44f4325b7453b4b7443470f570a33a4f67013e87.tar.gz
Update qemu to 0.12.4. Okay'ed by wiz@, in PR pkg/43311 filed by me.
--- version 0.12.4: - Workaround for broken OSS_GETVERSION on FreeBSD, part two (Juergen Lock) - oss: fix fragment setting (malc) - oss: issue OSS_GETVERSION ioctl only when needed (malc) - oss: refactor code around policy setting (malc) - oss: workaround for cases when OSS_GETVERSION is not defined (malc) - block: Free iovec arrays allocated by multiwrite_merge() (Stefan Hajnoczi) - lsi: fix segfault in lsi_command_complete (Gerd Hoffmann) - lsi: pass lsi_request to lsi_reselect (Gerd Hoffmann) - lsi: move dma_len+dma_buf into lsi_request (Gerd Hoffmann) - lsi: move current_dev into lsi_request (Gerd Hoffmann) - lsi: have lsi_request for the whole life time of the request. (Gerd Hoffmann) - lsi: use QTAILQ for lsi_queue (Gerd Hoffmann) - tcp/mips: Change TCG_AREG0 (fp -> s0) (Stefan Weil) - sh_pci: fix memory and I/O access (Aurelien Jarno) - Fix incoming migration with iothread (Marcelo Tosatti) - Fix SIGFPE for vnc display of width/height = 1 (Chris Webb) - net: remove broken net_set_boot_mask() boot device validation (Eduardo Habkost) - qcow2: Remove request from in-flight list after error (Kevin Wolf) - qcow2: Don't ignore immediate read/write failures (Kevin Wolf) - block: Fix multiwrite memory leak in error case (Kevin Wolf) - block: Fix error code in multiwrite for immediate failures (Kevin Wolf) - block: Fix multiwrite error handling (Kevin Wolf) - scsi-disk: fix buffer overflow (Gerd Hoffmann) - qcow2: Rewrite alloc_refcount_block/grow_refcount_table (Kevin Wolf) - qcow2: Factor next_refcount_table_size out (Kevin Wolf) - block: avoid creating too large iovecs in multiwrite_merge (Christoph Hellwig) - json-parser: Fix segfault on malformed input (Kevin Wolf) - linux-user: switch default ppc64 CPU to 970fx from 970 (Aurelien Jarno) - target-sh4: MMU: fix store queue addresses (Aurelien Jarno) - target-sh4: MMU: fix ITLB priviledge check (Aurelien Jarno) - target-sh4: MMU: fix mem_idx computation (Aurelien Jarno) - sh7750: handle MMUCR TI bit (Aurelien Jarno) - UHCI spurious interrut fix (Paul Brook) - tcg/mips: fix branch offset during retranslation (Aurelien Jarno) - tcg/arm: correctly save/restore registers in prologue/epilogue (Aurelien Jarno) - workaround for cmd646 bmdma register access while no dma is active (Igor V. Kovalenko) - Fix corner case in chardev udp: parameter (Jan Kiszka) - Don't set default monitor when there is a mux'ed one (Jan Kiszka) - spelling typo (compatibilty) in hw/fw_cfg.c (Vagrant Cascadian) - fdc: fix drive property handling. (Gerd Hoffmann) - target-i386: fix commit c22549204a6edc431e8e4358e61bd56386ff6957 (TeLeMan) - target-i386: fix SIB decoding with index = 4 (Aurelien Jarno) - Fix segfault with ram_size > 4095M without kvm (Ryan Harper) - target-i386: Fix long jumps/calls in long mode with REX.W set (malc) - target-i386: fix lddqu SSE instruction (Aurelien Jarno) - qemu-char.c: drop debug printfs from qemu_chr_parse_compat (Jan Kiszka) - fix undefined shifts by >32 (Paolo Bonzini) - Fix qemu -net user,hostfwd= example (Aurelien Jarno) --- Also add a patch for e1000.c NIC to make wm(4) work on NetBSD guest: --- * Reset EEPROM internal state on CS rise edge, not SK rise edge during CS is low, per CS pin description in the FM93C06 EEPROM manual: "... a rising edge on this signal is required to reset the internal state-machine to accept a new cycle ..." Intel's em driver seems to explicitly raise and lower SK output after CS is negated in em_standby_eeprom() so many other OSes that use Intel's driver don't have this problem, but I can't find articles that say the MICROWIRE or EEPROM spec requires such sequence. * It isn't a good idea to use memset(,0,) to clear EEPROM state values, so explicitly clear status members and preserve the previous EECD values --- This patch is also filed as upstream QEMU bugs #581737. While here, several tweaks in Makefile to appease pkglint.
Diffstat (limited to 'emulators')
-rw-r--r--emulators/qemu/Makefile15
-rw-r--r--emulators/qemu/distinfo9
-rw-r--r--emulators/qemu/patches/patch-ee37
3 files changed, 49 insertions, 12 deletions
diff --git a/emulators/qemu/Makefile b/emulators/qemu/Makefile
index 9dcf88e0279..2595d021b41 100644
--- a/emulators/qemu/Makefile
+++ b/emulators/qemu/Makefile
@@ -1,8 +1,7 @@
-# $NetBSD: Makefile,v 1.66 2010/04/25 12:55:41 gson Exp $
+# $NetBSD: Makefile,v 1.67 2010/05/17 14:31:07 tsutsui Exp $
#
-DISTNAME= qemu-0.12.3
-PKGREVISION= 2
+DISTNAME= qemu-0.12.4
CATEGORIES= emulators
MASTER_SITES= http://download.savannah.gnu.org/releases/qemu/
@@ -70,20 +69,20 @@ INSTALLATION_DIRS= ${PKGMANDIR}/man1 share/doc/qemu
UE_ARCHS+= alpha arm armeb cris i386 m68k microblaze mips mipsel
UE_ARCHS+= nbd ppc ppc64 ppc64abi32 sh4 sh4eb sparc sparc32plus
-UE_ARCHS+= sparc64 x86_64
+UE_ARCHS+= sparc64 x86_64
-.if !empty(OPSYS:M*BSD) || !empty(OPSYS:MDragonFly)
+.if !empty(OPSYS:M*BSD) || !empty(OPSYS:MDragonFly)
USER_EMUL= i386 x86_64 sparc sparc64
.elif !empty(OPSYS:MDarwin)
USER_EMUL= i386 x86_64 sparc sparc64 ppc
-.elif !empty(OPSYS:MLinux)
+.elif !empty(OPSYS:MLinux)
USER_EMUL= ${UE_ARCHS}
-PLIST.nbd= Yes
+PLIST.nbd= YES
.endif
PLIST_VARS+= ${UE_ARCHS} nbd
.for _var_ in ${USER_EMUL}
-PLIST.${_var_}= Yes
+PLIST.${_var_}= YES
.endfor
post-install:
diff --git a/emulators/qemu/distinfo b/emulators/qemu/distinfo
index d1b708e8fb9..fca21111677 100644
--- a/emulators/qemu/distinfo
+++ b/emulators/qemu/distinfo
@@ -1,8 +1,8 @@
-$NetBSD: distinfo,v 1.54 2010/04/25 12:55:41 gson Exp $
+$NetBSD: distinfo,v 1.55 2010/05/17 14:31:07 tsutsui Exp $
-SHA1 (qemu-0.12.3.tar.gz) = 03ec307be094bb216bb5be17297e9f33e1a01b56
-RMD160 (qemu-0.12.3.tar.gz) = 10dd16ee970a19a6706491fa4425ddbea1da2ba3
-Size (qemu-0.12.3.tar.gz) = 4693581 bytes
+SHA1 (qemu-0.12.4.tar.gz) = 1cc3200bf496c836f7c4256c1d12143dab9b82dc
+RMD160 (qemu-0.12.4.tar.gz) = dbf5e02812b0df076e4ec8c20b7c382f7507645e
+Size (qemu-0.12.4.tar.gz) = 4697077 bytes
SHA1 (patch-aa) = 7180def64ebff88074666adef21ee1b5022b6881
SHA1 (patch-ao) = e515093b6ea99f9cba665de022fd62f3be911569
SHA1 (patch-ba) = 7c5043a39405f52b512e479a46fc76108580b7bc
@@ -10,3 +10,4 @@ SHA1 (patch-dd) = 32661203ba023bea67cd7cde1f4088f4d0e5c582
SHA1 (patch-de) = 225eaa996fccc02b17be0099d943c75302600ada
SHA1 (patch-dk) = 5538bebc08b0047e501469f9cb306cb798d0eb00
SHA1 (patch-ed) = ef1871b82dac9c89dc3c3d28c97805fabeea43ab
+SHA1 (patch-ee) = 98081c9468d25564711f37cdff3958037f41b17d
diff --git a/emulators/qemu/patches/patch-ee b/emulators/qemu/patches/patch-ee
new file mode 100644
index 00000000000..e77647bb1f0
--- /dev/null
+++ b/emulators/qemu/patches/patch-ee
@@ -0,0 +1,37 @@
+$NetBSD: patch-ee,v 1.1 2010/05/17 14:31:07 tsutsui Exp $
+
+See NetBSD PR pkg/43311 and QEMU Bugs #581737:
+https://bugs.launchpad.net/qemu/+bug/581737
+
+--- hw/e1000.c.orig 2010-02-24 05:54:38.000000000 +0900
++++ hw/e1000.c 2010-05-08 04:04:39.000000000 +0900
+@@ -259,21 +259,20 @@
+
+ s->eecd_state.old_eecd = val & (E1000_EECD_SK | E1000_EECD_CS |
+ E1000_EECD_DI|E1000_EECD_FWE_MASK|E1000_EECD_REQ);
++ if (!(E1000_EECD_CS & val)) // CS inactive; nothing to do
++ return;
++ if (E1000_EECD_CS & (val ^ oldval)) { // CS rise edge; reset state
++ s->eecd_state.val_in = 0;
++ s->eecd_state.bitnum_in = 0;
++ s->eecd_state.bitnum_out = 0;
++ s->eecd_state.reading = 0;
++ }
+ if (!(E1000_EECD_SK & (val ^ oldval))) // no clock edge
+ return;
+ if (!(E1000_EECD_SK & val)) { // falling edge
+ s->eecd_state.bitnum_out++;
+ return;
+ }
+- if (!(val & E1000_EECD_CS)) { // rising, no CS (EEPROM reset)
+- memset(&s->eecd_state, 0, sizeof s->eecd_state);
+- /*
+- * restore old_eecd's E1000_EECD_SK (known to be on)
+- * to avoid false detection of a clock edge
+- */
+- s->eecd_state.old_eecd = E1000_EECD_SK;
+- return;
+- }
+ s->eecd_state.val_in <<= 1;
+ if (val & E1000_EECD_DI)
+ s->eecd_state.val_in |= 1;