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.diff -r1.66 -r1.67 pkgsrc/emulators/qemu/Makefile
(tsutsui)
@@ -1,18 +1,17 @@ | @@ -1,18 +1,17 @@ | |||
1 | # $NetBSD: Makefile,v 1.66 2010/04/25 12:55:41 gson Exp $ | 1 | # $NetBSD: Makefile,v 1.67 2010/05/17 14:31:07 tsutsui Exp $ | |
2 | # | 2 | # | |
3 | 3 | |||
4 | DISTNAME= qemu-0.12.3 | 4 | DISTNAME= qemu-0.12.4 | |
5 | PKGREVISION= 2 | |||
6 | CATEGORIES= emulators | 5 | CATEGORIES= emulators | |
7 | MASTER_SITES= http://download.savannah.gnu.org/releases/qemu/ | 6 | MASTER_SITES= http://download.savannah.gnu.org/releases/qemu/ | |
8 | 7 | |||
9 | MAINTAINER= pkgsrc-users@NetBSD.org | 8 | MAINTAINER= pkgsrc-users@NetBSD.org | |
10 | HOMEPAGE= http://www.qemu.org/ | 9 | HOMEPAGE= http://www.qemu.org/ | |
11 | COMMENT= CPU emulator using dynamic translation | 10 | COMMENT= CPU emulator using dynamic translation | |
12 | LICENSE= gnu-gpl-v2 AND gnu-lgpl-v2.1 AND mit AND modified-bsd | 11 | LICENSE= gnu-gpl-v2 AND gnu-lgpl-v2.1 AND mit AND modified-bsd | |
13 | 12 | |||
14 | PKG_DESTDIR_SUPPORT= user-destdir | 13 | PKG_DESTDIR_SUPPORT= user-destdir | |
15 | 14 | |||
16 | CONFLICTS+= qemu-bin-[0-9]* | 15 | CONFLICTS+= qemu-bin-[0-9]* | |
17 | NOT_FOR_PLATFORM= NetBSD-1.[0-6]*-* | 16 | NOT_FOR_PLATFORM= NetBSD-1.[0-6]*-* | |
18 | 17 | |||
@@ -60,37 +59,37 @@ SUBST_STAGE.qaudio= pre-configure | @@ -60,37 +59,37 @@ SUBST_STAGE.qaudio= pre-configure | |||
60 | SUBST_FILES.qaudio= *.c *.h audio/*.c hw/*.c | 59 | SUBST_FILES.qaudio= *.c *.h audio/*.c hw/*.c | |
61 | SUBST_SED.qaudio= -e s,audio.h\",qaudio.h\",g | 60 | SUBST_SED.qaudio= -e s,audio.h\",qaudio.h\",g | |
62 | SUBST_MESSAGE.qaudio= Fixing audio.h confusion | 61 | SUBST_MESSAGE.qaudio= Fixing audio.h confusion | |
63 | 62 | |||
64 | REPLACE_PERL+= texi2pod.pl | 63 | REPLACE_PERL+= texi2pod.pl | |
65 | 64 | |||
66 | BUILDLINK_PASSTHRU_DIRS+= /usr/lib | 65 | BUILDLINK_PASSTHRU_DIRS+= /usr/lib | |
67 | BUILDLINK_PASSTHRU_RPATHDIRS+= /usr/lib | 66 | BUILDLINK_PASSTHRU_RPATHDIRS+= /usr/lib | |
68 | 67 | |||
69 | INSTALLATION_DIRS= ${PKGMANDIR}/man1 share/doc/qemu | 68 | INSTALLATION_DIRS= ${PKGMANDIR}/man1 share/doc/qemu | |
70 | 69 | |||
71 | UE_ARCHS+= alpha arm armeb cris i386 m68k microblaze mips mipsel | 70 | UE_ARCHS+= alpha arm armeb cris i386 m68k microblaze mips mipsel | |
72 | UE_ARCHS+= nbd ppc ppc64 ppc64abi32 sh4 sh4eb sparc sparc32plus | 71 | UE_ARCHS+= nbd ppc ppc64 ppc64abi32 sh4 sh4eb sparc sparc32plus | |
73 | UE_ARCHS+= sparc64 x86_64 | 72 | UE_ARCHS+= sparc64 x86_64 | |
74 | 73 | |||
75 | .if !empty(OPSYS:M*BSD) || !empty(OPSYS:MDragonFly) | 74 | .if !empty(OPSYS:M*BSD) || !empty(OPSYS:MDragonFly) | |
76 | USER_EMUL= i386 x86_64 sparc sparc64 | 75 | USER_EMUL= i386 x86_64 sparc sparc64 | |
77 | .elif !empty(OPSYS:MDarwin) | 76 | .elif !empty(OPSYS:MDarwin) | |
78 | USER_EMUL= i386 x86_64 sparc sparc64 ppc | 77 | USER_EMUL= i386 x86_64 sparc sparc64 ppc | |
79 | .elif !empty(OPSYS:MLinux) | 78 | .elif !empty(OPSYS:MLinux) | |
80 | USER_EMUL= ${UE_ARCHS} | 79 | USER_EMUL= ${UE_ARCHS} | |
81 | PLIST.nbd= Yes | 80 | PLIST.nbd= YES | |
82 | .endif | 81 | .endif | |
83 | 82 | |||
84 | PLIST_VARS+= ${UE_ARCHS} nbd | 83 | PLIST_VARS+= ${UE_ARCHS} nbd | |
85 | .for _var_ in ${USER_EMUL} | 84 | .for _var_ in ${USER_EMUL} | |
86 | PLIST.${_var_}= Yes | 85 | PLIST.${_var_}= YES | |
87 | .endfor | 86 | .endfor | |
88 | 87 | |||
89 | post-install: | 88 | post-install: | |
90 | ${INSTALL_DATA} ${FILESDIR}/Makefile.multinode-NetBSD \ | 89 | ${INSTALL_DATA} ${FILESDIR}/Makefile.multinode-NetBSD \ | |
91 | ${DESTDIR}${PREFIX}/share/doc/qemu/ | 90 | ${DESTDIR}${PREFIX}/share/doc/qemu/ | |
92 | 91 | |||
93 | .include "../../devel/SDL/buildlink3.mk" | 92 | .include "../../devel/SDL/buildlink3.mk" | |
94 | .include "../../mk/oss.buildlink3.mk" | 93 | .include "../../mk/oss.buildlink3.mk" | |
95 | .include "../../mk/pthread.buildlink3.mk" | 94 | .include "../../mk/pthread.buildlink3.mk" | |
96 | .include "../../mk/bsd.pkg.mk" | 95 | .include "../../mk/bsd.pkg.mk" |
@@ -1,12 +1,13 @@ | @@ -1,12 +1,13 @@ | |||
1 | $NetBSD: distinfo,v 1.54 2010/04/25 12:55:41 gson Exp $ | 1 | $NetBSD: distinfo,v 1.55 2010/05/17 14:31:07 tsutsui Exp $ | |
2 | 2 | |||
3 | SHA1 (qemu-0.12.3.tar.gz) = 03ec307be094bb216bb5be17297e9f33e1a01b56 | 3 | SHA1 (qemu-0.12.4.tar.gz) = 1cc3200bf496c836f7c4256c1d12143dab9b82dc | |
4 | RMD160 (qemu-0.12.3.tar.gz) = 10dd16ee970a19a6706491fa4425ddbea1da2ba3 | 4 | RMD160 (qemu-0.12.4.tar.gz) = dbf5e02812b0df076e4ec8c20b7c382f7507645e | |
5 | Size (qemu-0.12.3.tar.gz) = 4693581 bytes | 5 | Size (qemu-0.12.4.tar.gz) = 4697077 bytes | |
6 | SHA1 (patch-aa) = 7180def64ebff88074666adef21ee1b5022b6881 | 6 | SHA1 (patch-aa) = 7180def64ebff88074666adef21ee1b5022b6881 | |
7 | SHA1 (patch-ao) = e515093b6ea99f9cba665de022fd62f3be911569 | 7 | SHA1 (patch-ao) = e515093b6ea99f9cba665de022fd62f3be911569 | |
8 | SHA1 (patch-ba) = 7c5043a39405f52b512e479a46fc76108580b7bc | 8 | SHA1 (patch-ba) = 7c5043a39405f52b512e479a46fc76108580b7bc | |
9 | SHA1 (patch-dd) = 32661203ba023bea67cd7cde1f4088f4d0e5c582 | 9 | SHA1 (patch-dd) = 32661203ba023bea67cd7cde1f4088f4d0e5c582 | |
10 | SHA1 (patch-de) = 225eaa996fccc02b17be0099d943c75302600ada | 10 | SHA1 (patch-de) = 225eaa996fccc02b17be0099d943c75302600ada | |
11 | SHA1 (patch-dk) = 5538bebc08b0047e501469f9cb306cb798d0eb00 | 11 | SHA1 (patch-dk) = 5538bebc08b0047e501469f9cb306cb798d0eb00 | |
12 | SHA1 (patch-ed) = ef1871b82dac9c89dc3c3d28c97805fabeea43ab | 12 | SHA1 (patch-ed) = ef1871b82dac9c89dc3c3d28c97805fabeea43ab | |
13 | SHA1 (patch-ee) = 98081c9468d25564711f37cdff3958037f41b17d |
$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;