From b179b768b455143b32bd626d9ca89da255b9a177 Mon Sep 17 00:00:00 2001 From: Juergen Lock Date: Wed, 29 May 2013 18:01:53 +0000 Subject: [PATCH] - Update to 1.5.0, announce message is here: https://lists.gnu.org/archive/html/qemu-devel/2013-05/msg02557.html Full changelog: http://wiki.qemu.org/ChangeLog/1.5 The new libusb host code needs recent 10-current; for older releases you can still try the net/usbredir support knob, see pkg-message for details. - Update pkg-message a bit. Thanx to: emaste for some suggestions --- emulators/qemu-devel/Makefile | 26 ++-- emulators/qemu-devel/distinfo | 4 +- emulators/qemu-devel/files/hw_e1000_c.patch | 4 +- ...ps-Fix-accumulator-arguments-to-gen_helper | 77 ----------- emulators/qemu-devel/files/patch-90_security | 11 +- .../qemu-devel/files/patch-bsd-user-syscall.c | 16 --- emulators/qemu-devel/files/patch-configure | 48 +++++++ .../qemu-devel/files/patch-hw-ppc_newworld.c | 14 -- .../qemu-devel/files/patch-hw-ppc_oldworld.c | 14 -- .../files/patch-hw-usb-host-libusb.c | 15 ++ .../files/patch-include-qemu-common.h | 30 ++++ emulators/qemu-devel/files/patch-os-posix.c | 12 -- emulators/qemu-devel/files/patch-ui-gtk.c | 14 ++ .../qemu-devel/files/patch-z-arm-bsd-user-001 | 8 -- .../files/patch-z2c-bsd-user-sson-002c | 69 +++++----- .../files/patch-zb2-bsd-user-sson004b | 20 +-- .../files/patch-zb4-bsd-user-main.c | 129 ++++++++++++++++++ .../qemu-devel/files/pcap-client-type.sed | 2 - emulators/qemu-devel/files/pcap-patch | 16 +-- .../files/revert-fbsd-libmath-patch | 14 -- emulators/qemu-devel/pkg-message | 36 +++-- emulators/qemu-devel/pkg-plist | 14 ++ 22 files changed, 340 insertions(+), 253 deletions(-) delete mode 100644 emulators/qemu-devel/files/patch-0001-target-mips-Fix-accumulator-arguments-to-gen_helper delete mode 100644 emulators/qemu-devel/files/patch-bsd-user-syscall.c delete mode 100644 emulators/qemu-devel/files/patch-hw-ppc_newworld.c delete mode 100644 emulators/qemu-devel/files/patch-hw-ppc_oldworld.c create mode 100644 emulators/qemu-devel/files/patch-hw-usb-host-libusb.c create mode 100644 emulators/qemu-devel/files/patch-include-qemu-common.h delete mode 100644 emulators/qemu-devel/files/patch-os-posix.c create mode 100644 emulators/qemu-devel/files/patch-ui-gtk.c create mode 100644 emulators/qemu-devel/files/patch-zb4-bsd-user-main.c delete mode 100644 emulators/qemu-devel/files/pcap-client-type.sed delete mode 100644 emulators/qemu-devel/files/revert-fbsd-libmath-patch diff --git a/emulators/qemu-devel/Makefile b/emulators/qemu-devel/Makefile index d681d3799e7a..c3ccba3790aa 100644 --- a/emulators/qemu-devel/Makefile +++ b/emulators/qemu-devel/Makefile @@ -2,7 +2,7 @@ # $FreeBSD$ PORTNAME= qemu -PORTVERSION= 1.4.1 +PORTVERSION= 1.5.0 CATEGORIES= emulators MASTER_SITES= http://wiki.qemu.org/download/:release \ LOCAL/nox:snapshot @@ -30,8 +30,8 @@ ONLY_FOR_ARCHS= amd64 i386 powerpc # XXX someone wants to debug sparc64 hosts? CONFLICTS_INSTALL= qemu-[0-9]* MAKE_JOBS_SAFE= yes -OPTIONS_DEFINE= SAMBA SDL OPENGL GNUTLS SASL JPEG PNG CDROM_DMA PCAP \ - USBREDIR GNS3 ADD_AUDIO X86_TARGETS BSD_USER \ +OPTIONS_DEFINE= SAMBA X11 OPENGL GNUTLS SASL JPEG PNG CDROM_DMA PCAP \ + USBREDIR GNS3 X86_TARGETS BSD_USER \ STATIC_LINK DOCS SAMBA_DESC= samba dependency (for -smb) GNUTLS_DESC= gnutls dependency (vnc encryption) @@ -43,11 +43,10 @@ PCAP_DESC= pcap dependency (networking with bpf) SEABIOS_GIT_DESC= add seabios snapshot (-bios bios.bin-1.6.3.1) USBREDIR_DESC= usb device network redirection (experimental!) GNS3_DESC= gns3 patches (promiscuous multicast) -ADD_AUDIO_DESC= Emulate more audio hardware (experimental!) X86_TARGETS_DESC= Don't build non-x86 system targets BSD_USER_DESC= Also build bsd-user targets (for testing) STATIC_LINK_DESC= Statically link the executables -OPTIONS_DEFAULT=SDL OPENGL GNUTLS SASL JPEG PNG CDROM_DMA PCAP +OPTIONS_DEFAULT=X11 OPENGL GNUTLS SASL JPEG PNG CDROM_DMA PCAP .include @@ -70,7 +69,7 @@ CONFIGURE_ARGS+= --disable-bsd-user .else CONFIGURE_ARGS+= --enable-nptl .if ${ARCH} != "amd64" -CONFIGURE_ARGS+= --target-list=i386-softmmu,x86_64-softmmu,alpha-softmmu,arm-softmmu,cris-softmmu,lm32-softmmu,m68k-softmmu,microblaze-softmmu,microblazeel-softmmu,mips-softmmu,mipsel-softmmu,mips64-softmmu,mips64el-softmmu,or32-softmmu,ppc-softmmu,ppcemb-softmmu,ppc64-softmmu,sh4-softmmu,sh4eb-softmmu,sparc-softmmu,sparc64-softmmu,s390x-softmmu,xtensa-softmmu,xtensaeb-softmmu,unicore32-softmmu,i386-bsd-user,sparc-bsd-user,arm-bsd-user,armeb-bsd-user,mips-bsd-user,mipsel-bsd-user +CONFIGURE_ARGS+= --target-list=i386-softmmu,x86_64-softmmu,alpha-softmmu,arm-softmmu,cris-softmmu,lm32-softmmu,m68k-softmmu,microblaze-softmmu,microblazeel-softmmu,mips-softmmu,mipsel-softmmu,mips64-softmmu,mips64el-softmmu,or32-softmmu,ppc-softmmu,ppcemb-softmmu,ppc64-softmmu,sh4-softmmu,sh4eb-softmmu,sparc-softmmu,sparc64-softmmu,s390x-softmmu,xtensa-softmmu,xtensaeb-softmmu,unicore32-softmmu,moxie-softmmu,i386-bsd-user,sparc-bsd-user,arm-bsd-user,armeb-bsd-user,mips-bsd-user,mipsel-bsd-user .endif .endif .endif @@ -109,10 +108,15 @@ CONFIGURE_ARGS+= --prefix=${PREFIX} --cc=${CC} --enable-docs \ --enable-debug-info \ --extra-cflags=-I${WRKSRC}\ -I${LOCALBASE}/include\ -DPREFIX=\\\"${PREFIX}\\\" -.if empty(PORT_OPTIONS:MSDL) +.if empty(PORT_OPTIONS:MX11) +CONFIGURE_ARGS+= --disable-gtk CONFIGURE_ARGS+= --disable-sdl +PLIST_SUB+= GTK="@comment " .else USE_SDL= sdl +USE_GNOME+= gtk20 vte +USES+= gettext +PLIST_SUB+= GTK="" .endif .if empty(PORT_OPTIONS:MGNUTLS) @@ -148,8 +152,8 @@ USE_GL= yes .if empty(PORT_OPTIONS:MUSBREDIR) CONFIGURE_ARGS+= --disable-usb-redir .else -BUILD_DEPENDS+= usbredir>=0.4.3:${PORTSDIR}/net/usbredir -RUN_DEPENDS+= usbredir>=0.4.3:${PORTSDIR}/net/usbredir +BUILD_DEPENDS+= usbredir>=0.6:${PORTSDIR}/net/usbredir +RUN_DEPENDS+= usbredir>=0.6:${PORTSDIR}/net/usbredir .endif .if ${PORT_OPTIONS:MPCAP} @@ -160,10 +164,6 @@ CONFIGURE_ARGS+= --enable-pcap CONFIGURE_ARGS+= --static .endif -.if ${PORT_OPTIONS:MADD_AUDIO} -CONFIGURE_ARGS+= --audio-card-list=ac97,es1370,sb16,cs4231a,adlib,gus,hda -.endif - .if ${PORT_OPTIONS:MSAMBA} RUN_DEPENDS+= ${LOCALBASE}/sbin/smbd:${PORTSDIR}/net/samba36 .endif diff --git a/emulators/qemu-devel/distinfo b/emulators/qemu-devel/distinfo index 177c7bae33c4..1055a2512082 100644 --- a/emulators/qemu-devel/distinfo +++ b/emulators/qemu-devel/distinfo @@ -1,2 +1,2 @@ -SHA256 (qemu/1.4.1/qemu-1.4.1.tar.bz2) = 75063a9326221607de3599e89fb5af80f2d8080ddc55ca253fff113843432df1 -SIZE (qemu/1.4.1/qemu-1.4.1.tar.bz2) = 10417738 +SHA256 (qemu/1.5.0/qemu-1.5.0.tar.bz2) = b22b30ee9712568dfb4eedf76783f4a76546e1cbc41659b909646bcf0b4867bb +SIZE (qemu/1.5.0/qemu-1.5.0.tar.bz2) = 11931067 diff --git a/emulators/qemu-devel/files/hw_e1000_c.patch b/emulators/qemu-devel/files/hw_e1000_c.patch index 15b2494f0d40..8cd6ded303d3 100644 --- a/emulators/qemu-devel/files/hw_e1000_c.patch +++ b/emulators/qemu-devel/files/hw_e1000_c.patch @@ -1,5 +1,5 @@ ---- qemu-0.14.1/hw/e1000.c.orig Thu Jun 23 17:01:19 2011 -+++ qemu-0.14.1/hw/e1000.c Thu Jun 23 17:02:30 2011 +--- qemu-0.14.1/hw/net/e1000.c.orig ++++ qemu-0.14.1/hw/net/e1000.c @@ -573,7 +573,7 @@ if (rctl & E1000_RCTL_UPE) // promiscuous return 1; diff --git a/emulators/qemu-devel/files/patch-0001-target-mips-Fix-accumulator-arguments-to-gen_helper b/emulators/qemu-devel/files/patch-0001-target-mips-Fix-accumulator-arguments-to-gen_helper deleted file mode 100644 index 0858bd671d59..000000000000 --- a/emulators/qemu-devel/files/patch-0001-target-mips-Fix-accumulator-arguments-to-gen_helper +++ /dev/null @@ -1,77 +0,0 @@ ->From 61b79e34bc57df0aa0c8086bd86f4c8818618d0e Mon Sep 17 00:00:00 2001 -From: Richard Sandiford -Date: Sat, 4 May 2013 15:01:31 +0100 -Subject: [PATCH] target-mips: Fix accumulator arguments to gen_helper_dmult(u) - -gen_muldiv was passing int accumulator arguments directly -to gen_helper_dmult(u). This patch fixes it to use TCGs, -via the gen_helper_0e2i wrapper. - -Fixes an --enable-debug-tcg build failure reported by Juergen Lock. - -Signed-off-by: Richard Sandiford ---- - target-mips/helper.h | 4 ++-- - target-mips/op_helper.c | 8 ++++---- - target-mips/translate.c | 4 ++-- - 3 files changed, 8 insertions(+), 8 deletions(-) - -diff --git a/target-mips/helper.h b/target-mips/helper.h -index cfe98f1..7aa5f79 100644 ---- a/target-mips/helper.h -+++ b/target-mips/helper.h -@@ -24,8 +24,8 @@ DEF_HELPER_FLAGS_1(clz, TCG_CALL_NO_RWG_SE, tl, tl) - #ifdef TARGET_MIPS64 - DEF_HELPER_FLAGS_1(dclo, TCG_CALL_NO_RWG_SE, tl, tl) - DEF_HELPER_FLAGS_1(dclz, TCG_CALL_NO_RWG_SE, tl, tl) --DEF_HELPER_4(dmult, void, env, int, tl, tl) --DEF_HELPER_4(dmultu, void, env, int, tl, tl) -+DEF_HELPER_4(dmult, void, env, tl, tl, int) -+DEF_HELPER_4(dmultu, void, env, tl, tl, int) - #endif - - DEF_HELPER_3(muls, tl, env, tl, tl) -diff --git a/target-mips/op_helper.c b/target-mips/op_helper.c -index c054300..01df687 100644 ---- a/target-mips/op_helper.c -+++ b/target-mips/op_helper.c -@@ -268,14 +268,14 @@ target_ulong helper_mulshiu(CPUMIPSState *env, target_ulong arg1, - } - - #ifdef TARGET_MIPS64 --void helper_dmult(CPUMIPSState *env, int acc, target_ulong arg1, -- target_ulong arg2) -+void helper_dmult(CPUMIPSState *env, target_ulong arg1, -+ target_ulong arg2, int acc) - { - muls64(&(env->active_tc.LO[acc]), &(env->active_tc.HI[acc]), arg1, arg2); - } - --void helper_dmultu(CPUMIPSState *env, int acc, target_ulong arg1, -- target_ulong arg2) -+void helper_dmultu(CPUMIPSState *env, target_ulong arg1, -+ target_ulong arg2, int acc) - { - mulu64(&(env->active_tc.LO[acc]), &(env->active_tc.HI[acc]), arg1, arg2); - } -diff --git a/target-mips/translate.c b/target-mips/translate.c -index 9ed6477..8205456 100644 ---- a/target-mips/translate.c -+++ b/target-mips/translate.c -@@ -2777,11 +2777,11 @@ static void gen_muldiv(DisasContext *ctx, uint32_t opc, - opn = "ddivu"; - break; - case OPC_DMULT: -- gen_helper_dmult(cpu_env, acc, t0, t1); -+ gen_helper_0e2i(dmult, t0, t1, acc); - opn = "dmult"; - break; - case OPC_DMULTU: -- gen_helper_dmultu(cpu_env, acc, t0, t1); -+ gen_helper_0e2i(dmultu, t0, t1, acc); - opn = "dmultu"; - break; - #endif --- -1.8.1.4 - diff --git a/emulators/qemu-devel/files/patch-90_security b/emulators/qemu-devel/files/patch-90_security index 6ce41640d374..65c340549de4 100644 --- a/emulators/qemu-devel/files/patch-90_security +++ b/emulators/qemu-devel/files/patch-90_security @@ -1,4 +1,4 @@ -Index: qemu/hw/dma.c +Index: qemu/hw/dma/i8257.c @@ -344,9 +344,11 @@ static void channel_run (int ncont, int } #endif @@ -14,7 +14,7 @@ Index: qemu/hw/dma.c ldebug ("dma_pos %d size %d\n", n, (r->base[COUNT] + 1) << ncont); } -Index: qemu/hw/fdc.c +Index: qemu/hw/block/fdc.c @@ -1445,7 +1445,8 @@ static uint32_t fdctrl_read_data(FDCtrl fd_sector(cur_drv)); return 0; @@ -35,10 +35,7 @@ Index: qemu/hw/fdc.c FLOPPY_DPRINTF("error writing sector %d\n", fd_sector(cur_drv)); return; -Index: qemu-0.8.2/hw/sb16.c -=================================================================== ---- qemu-0.8.2.orig/hw/sb16.c 2006-07-22 20:23:34.000000000 +0300 -+++ qemu-0.8.2/hw/sb16.c 2007-04-20 06:05:59.000000000 +0300 +Index: qemu-0.8.2/hw/audio/sb16.c @@ -1235,8 +1235,10 @@ static int SB_read_DMA (void *opaque, in s->block_size); #endif @@ -52,7 +49,7 @@ Index: qemu-0.8.2/hw/sb16.c } return dma_pos; -Index: qemu/hw/i8259.c +Index: qemu/hw/intc/i8259.c @@ -291,7 +291,8 @@ static void pic_ioport_write(void *opaqu s->init4 = val & 1; s->single_mode = val & 2; diff --git a/emulators/qemu-devel/files/patch-bsd-user-syscall.c b/emulators/qemu-devel/files/patch-bsd-user-syscall.c deleted file mode 100644 index 7bdda67c3c31..000000000000 --- a/emulators/qemu-devel/files/patch-bsd-user-syscall.c +++ /dev/null @@ -1,16 +0,0 @@ -diff --git a/bsd-user/syscall.c b/bsd-user/syscall.c -index eb1cdf2..2c32637 100644 ---- a/bsd-user/syscall.c -+++ b/bsd-user/syscall.c -@@ -212,7 +212,11 @@ static int sysctl_oldcvt(void *holdp, size_t holdlen, uint32_t kind) - *(uint64_t *)holdp = tswap64(*(unsigned long *)holdp); - break; - #endif -+#if !defined(__FreeBSD_version) || __FreeBSD_version < 900031 - case CTLTYPE_QUAD: -+#else -+ case CTLTYPE_U64: -+#endif - *(uint64_t *)holdp = tswap64(*(uint64_t *)holdp); - break; - case CTLTYPE_STRING: diff --git a/emulators/qemu-devel/files/patch-configure b/emulators/qemu-devel/files/patch-configure index d425d4cfef84..61bffda02f4e 100644 --- a/emulators/qemu-devel/files/patch-configure +++ b/emulators/qemu-devel/files/patch-configure @@ -17,6 +17,15 @@ " fi +@@ -1756,7 +1756,7 @@ if test "$gtk" != "no"; then + gtk_libs=`$pkg_config --libs $gtkpackage 2>/dev/null` + vte_cflags=`$pkg_config --cflags $vtepackage 2>/dev/null` + vte_libs=`$pkg_config --libs $vtepackage 2>/dev/null` +- libs_softmmu="$gtk_libs $vte_libs $libs_softmmu" ++ libs_softmmu="$gtk_libs -lintl $vte_libs $libs_softmmu" + gtk="yes" + else + if test "$gtk" = "yes" ; then @@ -2511,15 +2511,18 @@ if compile_prog "" "" ; then fi @@ -44,3 +53,42 @@ fi # Search for bswap_32 function +@@ -3134,18 +3134,29 @@ fi + + # check for libusb + if test "$libusb" != "no" ; then +- if $pkg_config --atleast-version=1.0.13 libusb-1.0 >/dev/null 2>&1 ; then +- libusb="yes" +- usb="libusb" +- libusb_cflags=$($pkg_config --cflags libusb-1.0 2>/dev/null) +- libusb_libs=$($pkg_config --libs libusb-1.0 2>/dev/null) +- QEMU_CFLAGS="$QEMU_CFLAGS $libusb_cflags" ++ cat > $TMPC << EOF ++#include ++ ++int main(void) { return libusb_get_port_path(NULL, NULL, NULL, 0); } ++EOF ++ if compile_prog "-Werror" "-lusb" ; then ++ libusb_cflags="" ++ libusb_libs=-lusb + libs_softmmu="$libs_softmmu $libusb_libs" + else +- if test "$libusb" = "yes"; then +- feature_not_found "libusb" ++ if $pkg_config --atleast-version=1.0.13 libusb-1.0 >/dev/null 2>&1 ; then ++ libusb="yes" ++ usb="libusb" ++ libusb_cflags=$($pkg_config --cflags libusb-1.0 2>/dev/null) ++ libusb_libs=$($pkg_config --libs libusb-1.0 2>/dev/null) ++ QEMU_CFLAGS="$QEMU_CFLAGS $libusb_cflags" ++ libs_softmmu="$libs_softmmu $libusb_libs" ++ else ++ if test "$libusb" = "yes"; then ++ feature_not_found "libusb" ++ fi ++ libusb="no" + fi +- libusb="no" + fi + fi + diff --git a/emulators/qemu-devel/files/patch-hw-ppc_newworld.c b/emulators/qemu-devel/files/patch-hw-ppc_newworld.c deleted file mode 100644 index e409d639aecf..000000000000 --- a/emulators/qemu-devel/files/patch-hw-ppc_newworld.c +++ /dev/null @@ -1,14 +0,0 @@ ---- a/hw/ppc/mac_newworld.c -+++ b/hw/ppc/mac_newworld.c -@@ -68,6 +68,11 @@ - #include "hw/usb.h" - #include "blockdev.h" - -+/* FreeBSD headers define this */ -+#ifdef round_page -+#undef round_page -+#endif -+ - #define MAX_IDE_BUS 2 - #define CFG_ADDR 0xf0000510 - diff --git a/emulators/qemu-devel/files/patch-hw-ppc_oldworld.c b/emulators/qemu-devel/files/patch-hw-ppc_oldworld.c deleted file mode 100644 index 57612edd053e..000000000000 --- a/emulators/qemu-devel/files/patch-hw-ppc_oldworld.c +++ /dev/null @@ -1,14 +0,0 @@ ---- a/hw/ppc/mac_oldworld.c -+++ b/hw/ppc/mac_oldworld.c -@@ -47,6 +47,11 @@ - #define MAX_IDE_BUS 2 - #define CFG_ADDR 0xf0000510 - -+/* FreeBSD headers define this */ -+#ifdef round_page -+#undef round_page -+#endif -+ - static int fw_cfg_boot_set(void *opaque, const char *boot_device) - { - fw_cfg_add_i16(opaque, FW_CFG_BOOT_DEVICE, boot_device[0]); diff --git a/emulators/qemu-devel/files/patch-hw-usb-host-libusb.c b/emulators/qemu-devel/files/patch-hw-usb-host-libusb.c new file mode 100644 index 000000000000..2d46b9215dfb --- /dev/null +++ b/emulators/qemu-devel/files/patch-hw-usb-host-libusb.c @@ -0,0 +1,15 @@ +--- a/hw/usb/host-libusb.c ++++ b/hw/usb/host-libusb.c +@@ -1324,8 +1324,12 @@ static Property usb_host_dev_properties[ + DEFINE_PROP_UINT32("isobufs", USBHostDevice, iso_urb_count, 4), + DEFINE_PROP_UINT32("isobsize", USBHostDevice, iso_urb_frames, 32), + DEFINE_PROP_INT32("bootindex", USBHostDevice, bootindex, -1), ++#ifdef LIBUSB_LOG_LEVEL_WARNING + DEFINE_PROP_UINT32("loglevel", USBHostDevice, loglevel, + LIBUSB_LOG_LEVEL_WARNING), ++#else ++ DEFINE_PROP_UINT32("loglevel", USBHostDevice, loglevel, 0), ++#endif + DEFINE_PROP_BIT("pipeline", USBHostDevice, options, + USB_HOST_OPT_PIPELINE, true), + DEFINE_PROP_END_OF_LIST(), diff --git a/emulators/qemu-devel/files/patch-include-qemu-common.h b/emulators/qemu-devel/files/patch-include-qemu-common.h new file mode 100644 index 000000000000..59f2254049df --- /dev/null +++ b/emulators/qemu-devel/files/patch-include-qemu-common.h @@ -0,0 +1,30 @@ +From brad@comstyle.com Tue May 21 22:45:57 CEST 2013 +From: brad@comstyle.com (Brad Smith) +Subject: [Qemu-devel] [PATCH] ui/gtk.c: Fix *BSD build of Gtk+ UI +Date: Tue, 21 May 2013 12:14:24 -0400 +Message-ID: <20130521161324.GA29977@rox.home.comstyle.com> + +Fix the build of the Gtk+ UI on *BSD systems. + +Signed-off-by: Brad Smith + +diff --git a/include/qemu-common.h b/include/qemu-common.h +index af769f5..c944bb7 100644 +--- a/include/qemu-common.h ++++ b/include/qemu-common.h +@@ -45,6 +45,7 @@ + #if defined(__GLIBC__) + # include + #elif defined CONFIG_BSD ++# include + # if defined(__FreeBSD__) || defined(__FreeBSD_kernel__) || defined(__DragonFly__) + # include + # else + +-- +This message has been scanned for viruses and +dangerous content by MailScanner, and is +believed to be clean. + + + diff --git a/emulators/qemu-devel/files/patch-os-posix.c b/emulators/qemu-devel/files/patch-os-posix.c deleted file mode 100644 index 1738650162ea..000000000000 --- a/emulators/qemu-devel/files/patch-os-posix.c +++ /dev/null @@ -1,12 +0,0 @@ ---- a/os-posix.c -+++ b/os-posix.c -@@ -27,6 +27,9 @@ - #include - #include - #include -+#ifdef __FreeBSD__ -+#include -+#endif - #include - /*needed for MAP_POPULATE before including qemu-options.h */ - #include diff --git a/emulators/qemu-devel/files/patch-ui-gtk.c b/emulators/qemu-devel/files/patch-ui-gtk.c new file mode 100644 index 000000000000..b71eb187119c --- /dev/null +++ b/emulators/qemu-devel/files/patch-ui-gtk.c @@ -0,0 +1,14 @@ +--- a/ui/gtk.c ++++ b/ui/gtk.c +@@ -714,7 +718,11 @@ static gboolean gd_key_event(GtkWidget * + } else if (gdk_keycode < 97) { + qemu_keycode = gdk_keycode - 8; + } else if (gdk_keycode < 158) { ++#if 0 + qemu_keycode = translate_evdev_keycode(gdk_keycode - 97); ++#else ++ qemu_keycode = translate_xfree86_keycode(gdk_keycode - 97); ++#endif + } else if (gdk_keycode == 208) { /* Hiragana_Katakana */ + qemu_keycode = 0x70; + } else if (gdk_keycode == 211) { /* backslash */ diff --git a/emulators/qemu-devel/files/patch-z-arm-bsd-user-001 b/emulators/qemu-devel/files/patch-z-arm-bsd-user-001 index a7fb6ab72b38..bf8bdae26823 100644 --- a/emulators/qemu-devel/files/patch-z-arm-bsd-user-001 +++ b/emulators/qemu-devel/files/patch-z-arm-bsd-user-001 @@ -314,14 +314,6 @@ #ifdef __FreeBSD__ /* * XXX this uses the undocumented oidfmt interface to find the kind of -@@ -215,6 +225,7 @@ static int sysctl_oldcvt(void *holdp, si - case CTLTYPE_QUAD: - #else - case CTLTYPE_U64: -+ case CTLTYPE_S64: - #endif - *(uint64_t *)holdp = tswap64(*(uint64_t *)holdp); - break; @@ -380,6 +391,9 @@ abi_long do_freebsd_syscall(void *cpu_en arg5, arg6)); diff --git a/emulators/qemu-devel/files/patch-z2c-bsd-user-sson-002c b/emulators/qemu-devel/files/patch-z2c-bsd-user-sson-002c index e0f024151e70..0c1d7720f3bb 100644 --- a/emulators/qemu-devel/files/patch-z2c-bsd-user-sson-002c +++ b/emulators/qemu-devel/files/patch-z2c-bsd-user-sson-002c @@ -107,17 +107,17 @@ index 146f022..7a99537 100644 --- a/bsd-user/main.c +++ b/bsd-user/main.c @@ -34,6 +34,10 @@ - #include "qemu-timer.h" - #include "envlist.h" + #include "qemu/timer.h" + #include "qemu/envlist.h" +#if defined(CONFIG_USE_NPTL) && defined(__FreeBSD__) +#include +#endif + - #define DEBUG_LOGFILE "/tmp/qemu.log" - int singlestep; -@@ -70,42 +74,186 @@ int cpu_get_pic_interrupt(CPUX86State *env) + #if defined(CONFIG_USE_GUEST_BASE) + unsigned long mmap_min_addr; +@@ -68,41 +72,185 @@ int cpu_get_pic_interrupt(CPUX86State *e } #endif @@ -187,7 +187,7 @@ index 146f022..7a99537 100644 +/* Start an exclusive operation. Must only be called outside of cpu_exec. */ +static inline void +start_exclusive(void) - { ++{ + CPUArchState *other; + + pthread_mutex_lock(&exclusive_lock); @@ -204,19 +204,17 @@ index 146f022..7a99537 100644 + if (pending_cpus > 1) { + pthread_cond_wait(&exclusive_cond, &exclusive_lock); + } - } - --void fork_start(void) ++} ++ +/* Finish an exclusive operation. */ +static inline void +end_exclusive(void) - { ++{ + pending_cpus = 0; + pthread_cond_broadcast(&exclusive_resume); + pthread_mutex_unlock(&exclusive_lock); - } - --void fork_end(int child) ++} ++ +/* Wait for exclusive ops to finish, and begin cpu execution. */ +static inline void +cpu_exec_start(CPUArchState *env) @@ -245,16 +243,18 @@ index 146f022..7a99537 100644 + +void +cpu_list_lock(void) -+{ + { + pthread_mutex_lock(&cpu_list_mutex); -+} -+ + } + +-void fork_start(void) +void +cpu_list_unlock(void) -+{ + { + pthread_mutex_unlock(&cpu_list_mutex); -+} -+ + } + +-void fork_end(int child) +#else /* ! CONFIG_USE_NPTL */ + +/* These are no-ops because we are not threadsafe. */ @@ -279,20 +279,20 @@ index 146f022..7a99537 100644 + +static inline void +start_exclusive(void) ++{ ++} ++ ++static inline void ++end_exclusive(void) ++{ ++} ++ ++static inline void ++cpu_exec_start(CPUArchState *env) { } -void cpu_list_unlock(void) -+static inline void -+end_exclusive(void) - { - } - -+static inline void -+cpu_exec_start(CPUArchState *env) -+{ -+} -+ + +static inline void +cpu_exec_end(CPUArchState *env) @@ -306,14 +306,13 @@ index 146f022..7a99537 100644 + +void +cpu_list_unlock(void) -+{ -+} + { + } +#endif /* CONFIG_USE_NPTL */ -+ + #ifdef TARGET_I386 /***********************************************************/ - /* CPUX86 core interface */ -@@ -740,7 +888,10 @@ void cpu_loop(CPUMIPSState *env) +@@ -738,7 +886,10 @@ void cpu_loop(CPUMIPSState *env) for(;;) { cpu_exec_start(env); @@ -324,7 +323,7 @@ index 146f022..7a99537 100644 cpu_exec_end(env); switch(trapnr) { case EXCP_SYSCALL: /* syscall exception */ -@@ -1206,6 +1357,18 @@ static void usage(void) +@@ -1204,6 +1355,18 @@ static void usage(void) THREAD CPUArchState *thread_env; diff --git a/emulators/qemu-devel/files/patch-zb2-bsd-user-sson004b b/emulators/qemu-devel/files/patch-zb2-bsd-user-sson004b index fc772caf9c31..3700f5b9c65a 100644 --- a/emulators/qemu-devel/files/patch-zb2-bsd-user-sson004b +++ b/emulators/qemu-devel/files/patch-zb2-bsd-user-sson004b @@ -165,7 +165,7 @@ diff --git a/bsd-user/main.c b/bsd-user/main.c index b248a91..99b94c1 100644 --- a/bsd-user/main.c +++ b/bsd-user/main.c -@@ -56,10 +56,15 @@ const char *qemu_uname_release = CONFIG_UNAME_RELEASE; +@@ -54,10 +54,15 @@ const char *qemu_uname_release = CONFIG_ extern char **environ; enum BSDType bsd_type; @@ -182,7 +182,7 @@ index b248a91..99b94c1 100644 static void save_proc_pathname(void); char qemu_proc_pathname[PATH_MAX]; -@@ -126,7 +131,7 @@ static int pending_cpus; +@@ -124,7 +129,7 @@ static int pending_cpus; /* Make sure everything is in a consistent state for calling fork(). */ void fork_start(void) { @@ -191,7 +191,7 @@ index b248a91..99b94c1 100644 pthread_mutex_lock(&exclusive_lock); mmap_fork_start(); } -@@ -146,11 +151,11 @@ void fork_end(int child) +@@ -144,11 +149,11 @@ void fork_end(int child) pthread_mutex_init(&cpu_list_mutex, NULL); pthread_cond_init(&exclusive_cond, NULL); pthread_cond_init(&exclusive_resume, NULL); @@ -205,7 +205,7 @@ index b248a91..99b94c1 100644 } } -@@ -1012,10 +1017,7 @@ void cpu_loop(CPUMIPSState *env) +@@ -1010,10 +1015,7 @@ void cpu_loop(CPUMIPSState *env) for(;;) { cpu_exec_start(env); @@ -216,16 +216,16 @@ index b248a91..99b94c1 100644 cpu_exec_end(env); switch(trapnr) { case EXCP_SYSCALL: /* syscall exception */ -@@ -1481,7 +1483,7 @@ static void usage(void) +@@ -1480,7 +1482,7 @@ static void usage(void) , TARGET_ARCH, interp_prefix, -- x86_stack_size, -+ target_dflssiz, - DEBUG_LOGFILE); +- x86_stack_size); ++ target_dflssiz); exit(1); } -@@ -1603,13 +1605,15 @@ int main(int argc, char **argv) + +@@ -1601,13 +1603,15 @@ int main(int argc, char **argv) usage(); } else if (!strcmp(r, "s")) { r = argv[optind++]; @@ -245,7 +245,7 @@ index b248a91..99b94c1 100644 } else if (!strcmp(r, "L")) { interp_prefix = argv[optind++]; } else if (!strcmp(r, "p")) { -@@ -1797,7 +1801,7 @@ int main(int argc, char **argv) +@@ -1791,7 +1795,7 @@ int main(int argc, char **argv) qemu_log("entry 0x" TARGET_ABI_FMT_lx "\n", info->entry); } diff --git a/emulators/qemu-devel/files/patch-zb4-bsd-user-main.c b/emulators/qemu-devel/files/patch-zb4-bsd-user-main.c new file mode 100644 index 000000000000..037e471efd01 --- /dev/null +++ b/emulators/qemu-devel/files/patch-zb4-bsd-user-main.c @@ -0,0 +1,129 @@ +--- a/bsd-user/main.c ++++ b/bsd-user/main.c +@@ -129,7 +129,7 @@ static int pending_cpus; + /* Make sure everything is in a consistent state for calling fork(). */ + void fork_start(void) + { +- spin_lock(&tb_lock); ++ spin_lock(&tcg_ctx.tb_ctx.tb_lock); + pthread_mutex_lock(&exclusive_lock); + mmap_fork_start(); + } +@@ -149,11 +149,11 @@ void fork_end(int child) + pthread_mutex_init(&cpu_list_mutex, NULL); + pthread_cond_init(&exclusive_cond, NULL); + pthread_cond_init(&exclusive_resume, NULL); +- spin_lock_init(&tb_lock); ++ spin_lock_init(&tcg_ctx.tb_ctx.tb_lock); + gdbserver_fork(thread_env); + } else { + pthread_mutex_unlock(&exclusive_lock); +- spin_unlock(&tb_lock); ++ spin_unlock(&tcg_ctx.tb_ctx.tb_lock); + } + } + +@@ -174,6 +174,7 @@ static inline void + start_exclusive(void) + { + CPUArchState *other; ++ CPUState *other_cpu; + + pthread_mutex_lock(&exclusive_lock); + exclusive_idle(); +@@ -181,7 +182,8 @@ start_exclusive(void) + pending_cpus = 1; + /* Make all other cpus stop executing. */ + for (other = first_cpu; other; other = other->next_cpu) { +- if (other->running) { ++ other_cpu = ENV_GET_CPU(other); ++ if (other_cpu->running) { + pending_cpus++; + cpu_exit(other); + } +@@ -202,20 +204,20 @@ end_exclusive(void) + + /* Wait for exclusive ops to finish, and begin cpu execution. */ + static inline void +-cpu_exec_start(CPUArchState *env) ++cpu_exec_start(CPUState *cpu) + { + pthread_mutex_lock(&exclusive_lock); + exclusive_idle(); +- env->running = 1; ++ cpu->running = true; + pthread_mutex_unlock(&exclusive_lock); + } + + /* Mark cpu as not excuting, and release pending exclusive ops. */ + static inline void +-cpu_exec_end(CPUArchState *env) ++cpu_exec_end(CPUState *cpu) + { + pthread_mutex_lock(&exclusive_lock); +- env->running = 0; ++ cpu->running = false; + if (pending_cpus > 1) { + pending_cpus--; + if (pending_cpus == 1) { +@@ -270,13 +272,13 @@ end_exclusive(void) + } + + static inline void +-cpu_exec_start(CPUArchState *env) ++cpu_exec_start(CPUState *cpu) + { + } + + + static inline void +-cpu_exec_end(CPUArchState *env) ++cpu_exec_end(CPUState *cpu) + { + } + +@@ -657,6 +659,7 @@ done: + + void cpu_loop(CPUARMState *env) + { ++ CPUState *cs = CPU(arm_env_get_cpu(env)); + int trapnr; + unsigned int n, insn; + uint32_t addr; +@@ -665,7 +668,7 @@ void cpu_loop(CPUARMState *env) + #ifdef DEBUG_ARM + printf("CPU LOOPING\n"); + #endif +- cpu_exec_start(env); ++ cpu_exec_start(cs); + #ifdef DEBUG_ARM + printf("EXECUTING...\n"); + #endif +@@ -673,7 +676,7 @@ void cpu_loop(CPUARMState *env) + #ifdef DEBUG_ARM + printf("trapnr %d\n", trapnr); + #endif +- cpu_exec_end(env); ++ cpu_exec_end(cs); + switch(trapnr) { + case EXCP_UDEF: + { +@@ -1008,15 +1011,16 @@ static int do_store_exclusive(CPUMIPSSta + + void cpu_loop(CPUMIPSState *env) + { ++ CPUState *cs = CPU(mips_env_get_cpu(env)); + target_siginfo_t info; + int trapnr; + abi_long ret; + unsigned int syscall_num; + + for(;;) { +- cpu_exec_start(env); ++ cpu_exec_start(cs); + trapnr = cpu_mips_exec(env); +- cpu_exec_end(env); ++ cpu_exec_end(cs); + switch(trapnr) { + case EXCP_SYSCALL: /* syscall exception */ + syscall_num = env->active_tc.gpr[2]; /* v0 */ diff --git a/emulators/qemu-devel/files/pcap-client-type.sed b/emulators/qemu-devel/files/pcap-client-type.sed deleted file mode 100644 index 135de3cdd926..000000000000 --- a/emulators/qemu-devel/files/pcap-client-type.sed +++ /dev/null @@ -1,2 +0,0 @@ -/^ NET_CLIENT_TYPE_DUMP,$/i\ -\ NET_CLIENT_TYPE_PCAP, diff --git a/emulators/qemu-devel/files/pcap-patch b/emulators/qemu-devel/files/pcap-patch index 279bdce00147..8586052d698c 100644 --- a/emulators/qemu-devel/files/pcap-patch +++ b/emulators/qemu-devel/files/pcap-patch @@ -1,16 +1,16 @@ --- configure.orig +++ configure -@@ -226,6 +226,9 @@ coroutine="" - seccomp="" - glusterfs="" - virtio_blk_data_plane="" +@@ -241,6 +241,9 @@ gtk="" + gtkabi="2.0" + tpm="no" + libssh2="" +pcap="no" +pcap_create="no" +bpf="no" # parse CC options first for opt do -@@ -729,6 +732,10 @@ for opt do +@@ -748,6 +751,10 @@ for opt do ;; --enable-vnc-ws) vnc_ws="yes" ;; @@ -21,7 +21,7 @@ --disable-slirp) slirp="no" ;; --disable-uuid) uuid="no" -@@ -1730,6 +1737,51 @@ EOF +@@ -1843,6 +1850,51 @@ EOF fi ########################################## @@ -73,7 +73,7 @@ # VNC TLS/WS detection if test "$vnc" = "yes" -a \( "$vnc_tls" != "no" -o "$vnc_ws" != "no" \) ; then cat > $TMPC <> $config_host_mak fi diff --git a/emulators/qemu-devel/files/revert-fbsd-libmath-patch b/emulators/qemu-devel/files/revert-fbsd-libmath-patch deleted file mode 100644 index d7adf8ddc743..000000000000 --- a/emulators/qemu-devel/files/revert-fbsd-libmath-patch +++ /dev/null @@ -1,14 +0,0 @@ ---- Makefile.orig 2010-02-06 20:59:24.000000000 +0100 -+++ Makefile 2010-02-06 21:00:17.000000000 +0100 -@@ -62,10 +62,7 @@ - - -include config-all-devices.mak - --build-all: $(DOCS) $(TOOLS) bsd/libmath.a recurse-all -- --bsd/libmath.a: -- ( cd bsd ; unset MAKEFLAGS ; $(BSD_MAKE) CC=$(CC) ) -+build-all: $(DOCS) $(TOOLS) recurse-all - - config-host.h: config-host.h-timestamp - config-host.h-timestamp: config-host.mak diff --git a/emulators/qemu-devel/pkg-message b/emulators/qemu-devel/pkg-message index bdb3557f6bc7..c99cee3ff202 100644 --- a/emulators/qemu-devel/pkg-message +++ b/emulators/qemu-devel/pkg-message @@ -1,10 +1,9 @@ FreeBSD host notes ================== -- Needs to run as root in order to use /dev/tap* networking (why?) (actually - RELENG_6 and above now has a sysctl net.link.tap.user_open to allow users to - use it too. Don't forget to adjust device node permissions in - /etc/devfs.rules.) +- Needs to set net.link.tap.user_open sysctl in order to use /dev/tap* + networking as non-root. Don't forget to adjust device node permissions in + /etc/devfs.rules. - slirp (usermode networking) is fixed now in cvs, on FreeSBIE 1.0 guests you still have to manually do: echo nameserver 10.0.2.3 >/etc/resolv.conf but @@ -45,19 +44,16 @@ FreeBSD host notes the same way. - The -smb option (smb-export local dir to guest using the default - slirp networking) needs the net/samba34 port/package installed - in addition to qemu. + slirp networking) needs the net/samba36 port/package installed + in addition to qemu. (SAMBA knob.) - If you want to use usb devices connected to the host in the guest - (usb_add host:... monitor command; this doesn't work on FreeBSD 8 and - -current atm because of the new usb stack - help updating the usb-bsd.c code - is more than welcome here!) you need to make sure the host isn't claiming - them, e.g. for umass devices (like memory sticks or external harddrives) - make sure umass isn't in the kernel (you can then still load it as a kld - when needed), also unless you are running qemu as root you then need to fix - permissions for /dev/ugen* device nodes: if you are on 5.x or later (devfs) - put a rule in /etc/devfs.rules, activate it in /etc/rc.conf and run - /etc/rc.d/devfs restart. Example devfs.rules: + yot need either recent 10-current (not tested yet much) or you can + use usbredir over the network (see below); also unless you are + running qemu as root you then need to fix permissions for /dev/ugen* + device nodes: if you are on 5.x or later (devfs) put a rule in + /etc/devfs.rules, activate it in /etc/rc.conf and run /etc/rc.d/devfs + restart. Example devfs.rules: [ugen_ruleset=20] add path 'ugen*' mode 660 group operator @@ -93,14 +89,15 @@ FreeBSD host notes processing error - resetting ehci HC Assertion failed: (0), function ehci_advance_state, file /data/ports/emulators/qemu-devel/work/qemu-0.15.0/hw/usb-ehci.c, line 2045. - The new qemu version works better, tho usbredirserver still crashes - when qemu exits.] + The new qemu version works better tho.] - Still usb: since the hub is no longer attached to the uchi controller and the wakeup mechanism, resume interrupt is not implemented yet linux guests will suspend the bus, i.e. they wont see devices usb_add'ed after its (linux') uhci module got loaded. Workaround: either add devices before - linux loads the module or rmmod and modprobe it afterwards. + linux loads the module or rmmod and modprobe it afterwards. [Not sure + if this still applies to the new libusb host code used on recent + 10-current.] - If you get repeated `atapi_poll called!' console messages with FreeBSD guests or other weird cdrom problems then thats probably because the guest @@ -144,7 +141,8 @@ processing error - resetting ehci HC also usually faster.) You should be able to migrate existing images to raw using qemu-img(1)'s convert function; raw doesn't support advanced features like snapshots tho. [a few important qcow2 bugfixed have been committed in - the meantime so this _might_ be less of an issue now.] + the meantime so this _might_ be less of an issue now; and meanwhile there + also is the new qed format - I don't know how stable that one is.] - (also not FreeBSD-specific:) It is recommended to pass raw images using the new -drive syntax, specifying format=raw explicitly in order to avoid diff --git a/emulators/qemu-devel/pkg-plist b/emulators/qemu-devel/pkg-plist index c13f699e5aed..fd46f1478e88 100644 --- a/emulators/qemu-devel/pkg-plist +++ b/emulators/qemu-devel/pkg-plist @@ -14,6 +14,7 @@ bin/qemu-system-i386 %%NONX86%%bin/qemu-system-mips64 %%NONX86%%bin/qemu-system-mips64el %%NONX86%%bin/qemu-system-mipsel +%%NONX86%%bin/qemu-system-moxie %%NONX86%%bin/qemu-system-or32 %%NONX86%%bin/qemu-system-ppc %%NONX86%%bin/qemu-system-ppc64 @@ -49,6 +50,13 @@ etc/qemu/target-x86_64.conf.sample %%DATADIR%%/acpi-dsdt.aml %%DATADIR%%/q35-acpi-dsdt.aml %%DATADIR%%/bios.bin +%%DATADIR%%/efi-e1000.rom +%%DATADIR%%/efi-eepro100.rom +%%DATADIR%%/efi-ne2k_pci.rom +%%DATADIR%%/efi-pcnet.rom +%%DATADIR%%/efi-rtl8139.rom +%%DATADIR%%/efi-virtio.rom +%%DATADIR%%/s390-ccw.img %%DATADIR%%/vgabios.bin %%DATADIR%%/vgabios-cirrus.bin %%DATADIR%%/vgabios-qxl.bin @@ -112,6 +120,12 @@ etc/qemu/target-x86_64.conf.sample %%DATADIR%%/keymaps/sv %%DATADIR%%/keymaps/th %%DATADIR%%/keymaps/tr +%%GTK%%share/locale/de_DE/LC_MESSAGES/qemu.mo +%%GTK%%share/locale/fr_FR/LC_MESSAGES/qemu.mo +%%GTK%%share/locale/it/LC_MESSAGES/qemu.mo +%%GTK%%share/locale/tr/LC_MESSAGES/qemu.mo @dirrm %%DATADIR%%/keymaps +%%GTK%%@dirrmtry share/locale/de_DE/LC_MESSAGES +%%GTK%%@dirrmtry share/locale/de_DE @dirrmtry %%DATADIR%% @dirrmtry %%DOCSDIR%%