diff --git a/configure b/configure index c136f12f05..0309dad906 100755 --- a/configure +++ b/configure @@ -300,8 +300,11 @@ else cpu=`uname -m` fi +ARCH= +# Normalise host CPU name and set ARCH. +# Note that this case should only have supported host CPUs, not guests. case "$cpu" in - alpha|cris|ia64|lm32|m68k|microblaze|ppc|ppc64|sparc64|unicore32) + ia64|ppc|ppc64|s390|s390x|sparc64) cpu="$cpu" ;; i386|i486|i586|i686|i86pc|BePC) @@ -319,20 +322,17 @@ case "$cpu" in mips*) cpu="mips" ;; - s390) - cpu="s390" - ;; - s390x) - cpu="s390x" - ;; sparc|sun4[cdmuv]) cpu="sparc" ;; *) - echo "Unsupported CPU = $cpu" - exit 1 + # This will result in either an error or falling back to TCI later + ARCH=unknown ;; esac +if test -z "$ARCH"; then + ARCH="$cpu" +fi # OS specific if check_define __linux__ ; then @@ -1080,6 +1080,18 @@ echo "NOTE: The object files are built at the place where configure is launched" exit 1 fi +# Now we have handled --enable-tcg-interpreter and know we're not just +# printing the help message, bail out if the host CPU isn't supported. +if test "$ARCH" = "unknown"; then + if test "$tcg_interpreter" = "yes" ; then + echo "Unsupported CPU = $cpu, will use TCG with TCI (experimental)" + ARCH=tci + else + echo "Unsupported CPU = $cpu, try --enable-tcg-interpreter" + exit 1 + fi +fi + # check that the C compiler works. cat > $TMPC <> $config_host_mak echo "docdir=$docdir" >> $config_host_mak echo "confdir=$confdir" >> $config_host_mak -case "$cpu" in - i386|x86_64|alpha|arm|cris|hppa|ia64|lm32|m68k|microblaze|mips|mips64|ppc|ppc64|s390|s390x|sparc|sparc64|unicore32) - ARCH=$cpu - ;; - *) - if test "$tcg_interpreter" = "yes" ; then - echo "Unsupported CPU = $cpu, will use TCG with TCI (experimental)" - ARCH=tci - else - echo "Unsupported CPU = $cpu, try --enable-tcg-interpreter" - exit 1 - fi - ;; -esac echo "ARCH=$ARCH" >> $config_host_mak if test "$debug_tcg" = "yes" ; then echo "CONFIG_DEBUG_TCG=y" >> $config_host_mak @@ -3414,7 +3408,6 @@ echo "# Automatically generated by configure - do not modify" > $config_target_m bflt="no" target_nptl="no" interp_prefix1=`echo "$interp_prefix" | sed "s/%M/$target_arch2/g"` -echo "CONFIG_QEMU_INTERP_PREFIX=\"$interp_prefix1\"" >> $config_target_mak gdb_xml_files="" target_short_alignment=2 target_int_alignment=4 @@ -3620,6 +3613,7 @@ if test "$target_softmmu" = "yes" ; then fi if test "$target_user_only" = "yes" ; then echo "CONFIG_USER_ONLY=y" >> $config_target_mak + echo "CONFIG_QEMU_INTERP_PREFIX=\"$interp_prefix1\"" >> $config_target_mak fi if test "$target_linux_user" = "yes" ; then echo "CONFIG_LINUX_USER=y" >> $config_target_mak diff --git a/gdbstub.c b/gdbstub.c index a5806ef6c4..7d470b608e 100644 --- a/gdbstub.c +++ b/gdbstub.c @@ -2762,11 +2762,13 @@ static int gdbserver_open(int port) ret = bind(fd, (struct sockaddr *)&sockaddr, sizeof(sockaddr)); if (ret < 0) { perror("bind"); + close(fd); return -1; } ret = listen(fd, 0); if (ret < 0) { perror("listen"); + close(fd); return -1; } return fd; diff --git a/hw/scsi-disk.c b/hw/scsi-disk.c index 505accdde5..5d8bf53586 100644 --- a/hw/scsi-disk.c +++ b/hw/scsi-disk.c @@ -1515,7 +1515,7 @@ static int scsi_initfn(SCSIDevice *dev) DriveInfo *dinfo; if (!s->qdev.conf.bs) { - error_report("scsi-disk: drive property not set"); + error_report("drive property not set"); return -1; } @@ -1537,7 +1537,7 @@ static int scsi_initfn(SCSIDevice *dev) } if (bdrv_is_sg(s->qdev.conf.bs)) { - error_report("scsi-disk: unwanted /dev/sg*"); + error_report("unwanted /dev/sg*"); return -1; } diff --git a/hw/scsi-generic.c b/hw/scsi-generic.c index 6f7d3db775..0aebcddf6e 100644 --- a/hw/scsi-generic.c +++ b/hw/scsi-generic.c @@ -374,13 +374,13 @@ static int scsi_generic_initfn(SCSIDevice *s) struct sg_scsi_id scsiid; if (!s->conf.bs) { - error_report("scsi-generic: drive property not set"); + error_report("drive property not set"); return -1; } /* check we are really using a /dev/sg* file */ if (!bdrv_is_sg(s->conf.bs)) { - error_report("scsi-generic: not /dev/sg*"); + error_report("not /dev/sg*"); return -1; } @@ -396,13 +396,13 @@ static int scsi_generic_initfn(SCSIDevice *s) /* check we are using a driver managing SG_IO (version 3 and after */ if (bdrv_ioctl(s->conf.bs, SG_GET_VERSION_NUM, &sg_version) < 0 || sg_version < 30000) { - error_report("scsi-generic: scsi generic interface too old"); + error_report("scsi generic interface too old"); return -1; } /* get LUN of the /dev/sg? */ if (bdrv_ioctl(s->conf.bs, SG_GET_SCSI_ID, &scsiid)) { - error_report("scsi-generic: SG_GET_SCSI_ID ioctl failed"); + error_report("SG_GET_SCSI_ID ioctl failed"); return -1; } diff --git a/hw/usb-bus.c b/hw/usb-bus.c index 8203390929..bd4afa7e2b 100644 --- a/hw/usb-bus.c +++ b/hw/usb-bus.c @@ -137,7 +137,7 @@ USBDevice *usb_create(USBBus *bus, const char *name) bus = usb_bus_find(-1); if (!bus) return NULL; - error_report("%s: no bus specified, using \"%s\" for \"%s\"\n", + error_report("%s: no bus specified, using \"%s\" for \"%s\"", __FUNCTION__, bus->qbus.name, name); } #endif @@ -152,12 +152,12 @@ USBDevice *usb_create_simple(USBBus *bus, const char *name) int rc; if (!dev) { - error_report("Failed to create USB device '%s'\n", name); + error_report("Failed to create USB device '%s'", name); return NULL; } rc = qdev_init(&dev->qdev); if (rc < 0) { - error_report("Failed to initialize USB device '%s'\n", name); + error_report("Failed to initialize USB device '%s'", name); return NULL; } return dev; @@ -244,7 +244,7 @@ int usb_claim_port(USBDevice *dev) } } if (port == NULL) { - error_report("Error: usb port %s (bus %s) not found (in use?)\n", + error_report("Error: usb port %s (bus %s) not found (in use?)", dev->port_path, bus->qbus.name); return -1; } @@ -255,7 +255,7 @@ int usb_claim_port(USBDevice *dev) } if (bus->nfree == 0) { error_report("Error: tried to attach usb device %s to a bus " - "with no free ports\n", dev->product_desc); + "with no free ports", dev->product_desc); return -1; } port = QTAILQ_FIRST(&bus->free); @@ -302,7 +302,7 @@ int usb_device_attach(USBDevice *dev) if (!(port->speedmask & dev->speedmask)) { error_report("Warning: speed mismatch trying to attach " - "usb device %s to bus %s\n", + "usb device %s to bus %s", dev->product_desc, bus->qbus.name); return -1; } diff --git a/hw/usb-msd.c b/hw/usb-msd.c index 3147131db4..e42729699d 100644 --- a/hw/usb-msd.c +++ b/hw/usb-msd.c @@ -529,7 +529,7 @@ static int usb_msd_initfn(USBDevice *dev) DriveInfo *dinfo; if (!bs) { - error_report("usb-msd: drive property not set"); + error_report("drive property not set"); return -1; } diff --git a/hw/virtio-blk.c b/hw/virtio-blk.c index ef27421d46..5e81f53e14 100644 --- a/hw/virtio-blk.c +++ b/hw/virtio-blk.c @@ -569,7 +569,7 @@ VirtIODevice *virtio_blk_init(DeviceState *dev, BlockConf *conf, DriveInfo *dinfo; if (!conf->bs) { - error_report("virtio-blk-pci: drive property not set"); + error_report("drive property not set"); return NULL; } if (!bdrv_is_inserted(conf->bs)) { diff --git a/net/socket.c b/net/socket.c index aaf9be48e2..c9d70d388e 100644 --- a/net/socket.c +++ b/net/socket.c @@ -427,12 +427,14 @@ static int net_socket_listen_init(VLANState *vlan, if (ret < 0) { perror("bind"); g_free(s); + closesocket(fd); return -1; } ret = listen(fd, 0); if (ret < 0) { perror("listen"); g_free(s); + closesocket(fd); return -1; } s->vlan = vlan; diff --git a/qemu-nbd.c b/qemu-nbd.c index 155b05840b..eb61c33acd 100644 --- a/qemu-nbd.c +++ b/qemu-nbd.c @@ -202,12 +202,10 @@ static void *nbd_client_thread(void *arg) int ret; pthread_t show_parts_thread; - do { - sock = unix_socket_outgoing(sockpath); - if (sock == -1) { - goto out; - } - } while (sock == -1); + sock = unix_socket_outgoing(sockpath); + if (sock == -1) { + goto out; + } ret = nbd_receive_negotiate(sock, NULL, &nbdflags, &size, &blocksize); diff --git a/qemu-options.hx b/qemu-options.hx index b38e672fdb..7903e5c11b 100644 --- a/qemu-options.hx +++ b/qemu-options.hx @@ -871,8 +871,8 @@ The x509 file names can also be configured individually. @item tls-ciphers= Specify which ciphers to use. -@item tls-channel=[main|display|inputs|record|playback|tunnel] -@item plaintext-channel=[main|display|inputs|record|playback|tunnel] +@item tls-channel=[main|display|cursor|inputs|record|playback] +@item plaintext-channel=[main|display|cursor|inputs|record|playback] Force specific channel to be used with or without TLS encryption. The options can be specified multiple times to configure multiple channels. The special name "default" can be used to set the default diff --git a/usb-redir.c b/usb-redir.c index a36f2a7cda..2b53cf30cc 100644 --- a/usb-redir.c +++ b/usb-redir.c @@ -174,7 +174,7 @@ static void usbredir_log(void *priv, int level, const char *msg) return; } - error_report("%s\n", msg); + error_report("%s", msg); } static void usbredir_log_data(USBRedirDevice *dev, const char *desc, @@ -193,7 +193,7 @@ static void usbredir_log_data(USBRedirDevice *dev, const char *desc, for (j = 0; j < 8 && i + j < len; j++) { n += sprintf(buf + n, " %02X", data[i + j]); } - error_report("%s\n", buf); + error_report("%s", buf); } }