* [Qemu-devel] [PATCH 0/3] io: Various fixes around QIOChannel Features
@ 2016-09-28 12:05 Felipe Franciosi
2016-09-28 12:05 ` [Qemu-devel] [PATCH 1/3] io: Fix double shift usages on QIOChannel features Felipe Franciosi
` (3 more replies)
0 siblings, 4 replies; 6+ messages in thread
From: Felipe Franciosi @ 2016-09-28 12:05 UTC (permalink / raw)
To: berrange, marcandre.lureau; +Cc: pbonzini, qemu-devel, Felipe Franciosi
This series include three patches around the utilisation of QIOChannel
features. The first patch actually fixes a bug, while the other two
makes the test/set of features consistent by using helper functions.
Felipe Franciosi (3):
io: Fix double shift usages on QIOChannel features
io: Use qio_channel_has_feature() where applicable
io: Introduce a qio_channel_set_feature() helper
include/io/channel.h | 16 +++++++++++++---
io/channel-socket.c | 12 +++++++-----
io/channel-tls.c | 4 ++--
io/channel-websock.c | 4 ++--
io/channel.c | 11 +++++++++--
5 files changed, 33 insertions(+), 14 deletions(-)
^ permalink raw reply [flat|nested] 6+ messages in thread
* [Qemu-devel] [PATCH 1/3] io: Fix double shift usages on QIOChannel features
2016-09-28 12:05 [Qemu-devel] [PATCH 0/3] io: Various fixes around QIOChannel Features Felipe Franciosi
@ 2016-09-28 12:05 ` Felipe Franciosi
2016-09-28 12:05 ` [Qemu-devel] [PATCH 2/3] io: Use qio_channel_has_feature() where applicable Felipe Franciosi
` (2 subsequent siblings)
3 siblings, 0 replies; 6+ messages in thread
From: Felipe Franciosi @ 2016-09-28 12:05 UTC (permalink / raw)
To: berrange, marcandre.lureau; +Cc: pbonzini, qemu-devel, Felipe Franciosi
When QIOChannels were introduced in 666a3af9, the feature bits were
already defined shifted. However, when using them, the code was shifting
them again. The incorrect use was consistent until 74b6ce43, where
QIO_CHANNEL_FEATURE_LISTEN was defined shifted but tested unshifted.
This patch changes the definition to be unshifted and fixes the
incorrect usage introduced on 74b6ce43.
Signed-off-by: Felipe Franciosi <felipe@nutanix.com>
---
include/io/channel.h | 6 +++---
io/channel-socket.c | 2 +-
2 files changed, 4 insertions(+), 4 deletions(-)
diff --git a/include/io/channel.h b/include/io/channel.h
index 752e89f..5368604 100644
--- a/include/io/channel.h
+++ b/include/io/channel.h
@@ -40,9 +40,9 @@ typedef struct QIOChannelClass QIOChannelClass;
typedef enum QIOChannelFeature QIOChannelFeature;
enum QIOChannelFeature {
- QIO_CHANNEL_FEATURE_FD_PASS = (1 << 0),
- QIO_CHANNEL_FEATURE_SHUTDOWN = (1 << 1),
- QIO_CHANNEL_FEATURE_LISTEN = (1 << 2),
+ QIO_CHANNEL_FEATURE_FD_PASS,
+ QIO_CHANNEL_FEATURE_SHUTDOWN,
+ QIO_CHANNEL_FEATURE_LISTEN,
};
diff --git a/io/channel-socket.c b/io/channel-socket.c
index 196a4f1..6710b2e 100644
--- a/io/channel-socket.c
+++ b/io/channel-socket.c
@@ -403,7 +403,7 @@ static void qio_channel_socket_finalize(Object *obj)
QIOChannelSocket *ioc = QIO_CHANNEL_SOCKET(obj);
if (ioc->fd != -1) {
- if (QIO_CHANNEL(ioc)->features & QIO_CHANNEL_FEATURE_LISTEN) {
+ if (QIO_CHANNEL(ioc)->features & (1 << QIO_CHANNEL_FEATURE_LISTEN)) {
Error *err = NULL;
socket_listen_cleanup(ioc->fd, &err);
--
1.7.1
^ permalink raw reply related [flat|nested] 6+ messages in thread
* [Qemu-devel] [PATCH 2/3] io: Use qio_channel_has_feature() where applicable
2016-09-28 12:05 [Qemu-devel] [PATCH 0/3] io: Various fixes around QIOChannel Features Felipe Franciosi
2016-09-28 12:05 ` [Qemu-devel] [PATCH 1/3] io: Fix double shift usages on QIOChannel features Felipe Franciosi
@ 2016-09-28 12:05 ` Felipe Franciosi
2016-09-28 12:24 ` Felipe Franciosi
2016-09-28 12:05 ` [Qemu-devel] [PATCH 3/3] io: Introduce a qio_channel_set_feature() helper Felipe Franciosi
2016-09-28 12:29 ` [Qemu-devel] [PATCH 0/3] io: Various fixes around QIOChannel Features no-reply
3 siblings, 1 reply; 6+ messages in thread
From: Felipe Franciosi @ 2016-09-28 12:05 UTC (permalink / raw)
To: berrange, marcandre.lureau; +Cc: pbonzini, qemu-devel, Felipe Franciosi
Parts of the code have been testing QIOChannel features directly with a
logical AND. This patch makes it all consistent by using the
qio_channel_has_feature() function to test if a feature is present.
Signed-off-by: Felipe Franciosi <felipe@nutanix.com>
---
io/channel-socket.c | 3 ++-
io/channel-tls.c | 2 +-
io/channel-websock.c | 2 +-
io/channel.c | 4 ++--
4 files changed, 6 insertions(+), 5 deletions(-)
diff --git a/io/channel-socket.c b/io/channel-socket.c
index 6710b2e..878fe2f 100644
--- a/io/channel-socket.c
+++ b/io/channel-socket.c
@@ -403,7 +403,8 @@ static void qio_channel_socket_finalize(Object *obj)
QIOChannelSocket *ioc = QIO_CHANNEL_SOCKET(obj);
if (ioc->fd != -1) {
- if (QIO_CHANNEL(ioc)->features & (1 << QIO_CHANNEL_FEATURE_LISTEN)) {
+ QIOChannel ioc_local = QIO_CHANNEL(ioc);
+ if (qio_channel_has_feature(ioc_local, QIO_CHANNEL_FEATURE_LISTEN)) {
Error *err = NULL;
socket_listen_cleanup(ioc->fd, &err);
diff --git a/io/channel-tls.c b/io/channel-tls.c
index 9a8525c..f7bb0e3 100644
--- a/io/channel-tls.c
+++ b/io/channel-tls.c
@@ -111,7 +111,7 @@ qio_channel_tls_new_client(QIOChannel *master,
ioc = QIO_CHANNEL(tioc);
tioc->master = master;
- if (master->features & (1 << QIO_CHANNEL_FEATURE_SHUTDOWN)) {
+ if (qio_channel_has_feature(master, QIO_CHANNEL_FEATURE_SHUTDOWN)) {
ioc->features |= (1 << QIO_CHANNEL_FEATURE_SHUTDOWN);
}
object_ref(OBJECT(master));
diff --git a/io/channel-websock.c b/io/channel-websock.c
index 533bd4b..75df03e 100644
--- a/io/channel-websock.c
+++ b/io/channel-websock.c
@@ -497,7 +497,7 @@ qio_channel_websock_new_server(QIOChannel *master)
ioc = QIO_CHANNEL(wioc);
wioc->master = master;
- if (master->features & (1 << QIO_CHANNEL_FEATURE_SHUTDOWN)) {
+ if (qio_channel_has_feature(master, QIO_CHANNEL_FEATURE_SHUTDOWN)) {
ioc->features |= (1 << QIO_CHANNEL_FEATURE_SHUTDOWN);
}
object_ref(OBJECT(master));
diff --git a/io/channel.c b/io/channel.c
index 923c465..e50325c 100644
--- a/io/channel.c
+++ b/io/channel.c
@@ -40,7 +40,7 @@ ssize_t qio_channel_readv_full(QIOChannel *ioc,
QIOChannelClass *klass = QIO_CHANNEL_GET_CLASS(ioc);
if ((fds || nfds) &&
- !(ioc->features & (1 << QIO_CHANNEL_FEATURE_FD_PASS))) {
+ !qio_channel_has_feature(ioc, QIO_CHANNEL_FEATURE_FD_PASS)) {
error_setg_errno(errp, EINVAL,
"Channel does not support file descriptor passing");
return -1;
@@ -60,7 +60,7 @@ ssize_t qio_channel_writev_full(QIOChannel *ioc,
QIOChannelClass *klass = QIO_CHANNEL_GET_CLASS(ioc);
if ((fds || nfds) &&
- !(ioc->features & (1 << QIO_CHANNEL_FEATURE_FD_PASS))) {
+ !qio_channel_has_feature(ioc, QIO_CHANNEL_FEATURE_FD_PASS)) {
error_setg_errno(errp, EINVAL,
"Channel does not support file descriptor passing");
return -1;
--
1.7.1
^ permalink raw reply related [flat|nested] 6+ messages in thread
* [Qemu-devel] [PATCH 3/3] io: Introduce a qio_channel_set_feature() helper
2016-09-28 12:05 [Qemu-devel] [PATCH 0/3] io: Various fixes around QIOChannel Features Felipe Franciosi
2016-09-28 12:05 ` [Qemu-devel] [PATCH 1/3] io: Fix double shift usages on QIOChannel features Felipe Franciosi
2016-09-28 12:05 ` [Qemu-devel] [PATCH 2/3] io: Use qio_channel_has_feature() where applicable Felipe Franciosi
@ 2016-09-28 12:05 ` Felipe Franciosi
2016-09-28 12:29 ` [Qemu-devel] [PATCH 0/3] io: Various fixes around QIOChannel Features no-reply
3 siblings, 0 replies; 6+ messages in thread
From: Felipe Franciosi @ 2016-09-28 12:05 UTC (permalink / raw)
To: berrange, marcandre.lureau; +Cc: pbonzini, qemu-devel, Felipe Franciosi
Testing QIOChannel feature support can be done with a helper called
qio_channel_has_feature(). Setting feature support, however, was
done manually with a logical OR. This patch introduces a new helper
called qio_channel_set_feature() and makes use of it where applicable.
Signed-off-by: Felipe Franciosi <felipe@nutanix.com>
---
include/io/channel.h | 10 ++++++++++
io/channel-socket.c | 9 +++++----
io/channel-tls.c | 2 +-
io/channel-websock.c | 2 +-
io/channel.c | 7 +++++++
5 files changed, 24 insertions(+), 6 deletions(-)
diff --git a/include/io/channel.h b/include/io/channel.h
index 5368604..cf1c622 100644
--- a/include/io/channel.h
+++ b/include/io/channel.h
@@ -149,6 +149,16 @@ bool qio_channel_has_feature(QIOChannel *ioc,
QIOChannelFeature feature);
/**
+ * qio_channel_set_feature:
+ * @ioc: the channel object
+ * @feature: the feature to set support for
+ *
+ * Add channel support for the feature named in @feature.
+ */
+void qio_channel_set_feature(QIOChannel *ioc,
+ QIOChannelFeature feature);
+
+/**
* qio_channel_readv_full:
* @ioc: the channel object
* @iov: the array of memory regions to read data into
diff --git a/io/channel-socket.c b/io/channel-socket.c
index 878fe2f..6ebae20 100644
--- a/io/channel-socket.c
+++ b/io/channel-socket.c
@@ -55,7 +55,7 @@ qio_channel_socket_new(void)
sioc->fd = -1;
ioc = QIO_CHANNEL(sioc);
- ioc->features |= (1 << QIO_CHANNEL_FEATURE_SHUTDOWN);
+ qio_channel_set_feature(ioc, QIO_CHANNEL_FEATURE_SHUTDOWN);
#ifdef WIN32
ioc->event = CreateEvent(NULL, FALSE, FALSE, NULL);
@@ -107,12 +107,12 @@ qio_channel_socket_set_fd(QIOChannelSocket *sioc,
#ifndef WIN32
if (sioc->localAddr.ss_family == AF_UNIX) {
QIOChannel *ioc = QIO_CHANNEL(sioc);
- ioc->features |= (1 << QIO_CHANNEL_FEATURE_FD_PASS);
+ qio_channel_set_feature(ioc, QIO_CHANNEL_FEATURE_FD_PASS);
}
#endif /* WIN32 */
if (getsockopt(fd, SOL_SOCKET, SO_ACCEPTCONN, &val, &len) == 0 && val) {
QIOChannel *ioc = QIO_CHANNEL(sioc);
- ioc->features |= (1 << QIO_CHANNEL_FEATURE_LISTEN);
+ qio_channel_set_feature(ioc, QIO_CHANNEL_FEATURE_LISTEN);
}
return 0;
@@ -380,7 +380,8 @@ qio_channel_socket_accept(QIOChannelSocket *ioc,
#ifndef WIN32
if (cioc->localAddr.ss_family == AF_UNIX) {
- QIO_CHANNEL(cioc)->features |= (1 << QIO_CHANNEL_FEATURE_FD_PASS);
+ QIOChannel ioc_local = QIO_CHANNEL(cioc);
+ qio_channel_set_features(ioc_local, QIO_CHANNEL_FEATURE_FD_PASS);
}
#endif /* WIN32 */
diff --git a/io/channel-tls.c b/io/channel-tls.c
index f7bb0e3..d24dc8c 100644
--- a/io/channel-tls.c
+++ b/io/channel-tls.c
@@ -112,7 +112,7 @@ qio_channel_tls_new_client(QIOChannel *master,
tioc->master = master;
if (qio_channel_has_feature(master, QIO_CHANNEL_FEATURE_SHUTDOWN)) {
- ioc->features |= (1 << QIO_CHANNEL_FEATURE_SHUTDOWN);
+ qio_channel_set_feature(ioc, QIO_CHANNEL_FEATURE_SHUTDOWN);
}
object_ref(OBJECT(master));
diff --git a/io/channel-websock.c b/io/channel-websock.c
index 75df03e..f45bced 100644
--- a/io/channel-websock.c
+++ b/io/channel-websock.c
@@ -498,7 +498,7 @@ qio_channel_websock_new_server(QIOChannel *master)
wioc->master = master;
if (qio_channel_has_feature(master, QIO_CHANNEL_FEATURE_SHUTDOWN)) {
- ioc->features |= (1 << QIO_CHANNEL_FEATURE_SHUTDOWN);
+ qio_channel_set_feature(ioc, QIO_CHANNEL_FEATURE_SHUTDOWN);
}
object_ref(OBJECT(master));
diff --git a/io/channel.c b/io/channel.c
index e50325c..d1f1ae5 100644
--- a/io/channel.c
+++ b/io/channel.c
@@ -30,6 +30,13 @@ bool qio_channel_has_feature(QIOChannel *ioc,
}
+void qio_channel_set_feature(QIOChannel *ioc,
+ QIOChannelFeature feature)
+{
+ ioc->features |= (1 << feature);
+}
+
+
ssize_t qio_channel_readv_full(QIOChannel *ioc,
const struct iovec *iov,
size_t niov,
--
1.7.1
^ permalink raw reply related [flat|nested] 6+ messages in thread
* Re: [Qemu-devel] [PATCH 2/3] io: Use qio_channel_has_feature() where applicable
2016-09-28 12:05 ` [Qemu-devel] [PATCH 2/3] io: Use qio_channel_has_feature() where applicable Felipe Franciosi
@ 2016-09-28 12:24 ` Felipe Franciosi
0 siblings, 0 replies; 6+ messages in thread
From: Felipe Franciosi @ 2016-09-28 12:24 UTC (permalink / raw)
To: Daniel P. Berrange, Marc-Andre Lureau; +Cc: Paolo Bonzini, qemu-devel
Hello,
> On 28 Sep 2016, at 13:05, Felipe Franciosi <felipe@nutanix.com> wrote:
>
> Parts of the code have been testing QIOChannel features directly with a
> logical AND. This patch makes it all consistent by using the
> qio_channel_has_feature() function to test if a feature is present.
>
> Signed-off-by: Felipe Franciosi <felipe@nutanix.com>
> ---
> io/channel-socket.c | 3 ++-
> io/channel-tls.c | 2 +-
> io/channel-websock.c | 2 +-
> io/channel.c | 4 ++--
> 4 files changed, 6 insertions(+), 5 deletions(-)
>
> diff --git a/io/channel-socket.c b/io/channel-socket.c
> index 6710b2e..878fe2f 100644
> --- a/io/channel-socket.c
> +++ b/io/channel-socket.c
> @@ -403,7 +403,8 @@ static void qio_channel_socket_finalize(Object *obj)
> QIOChannelSocket *ioc = QIO_CHANNEL_SOCKET(obj);
>
> if (ioc->fd != -1) {
> - if (QIO_CHANNEL(ioc)->features & (1 << QIO_CHANNEL_FEATURE_LISTEN)) {
> + QIOChannel ioc_local = QIO_CHANNEL(ioc);
Oops, I tested one patch and sent another. Please disregard this series briefly. v2 coming up in a few minutes.
Felipe
> + if (qio_channel_has_feature(ioc_local, QIO_CHANNEL_FEATURE_LISTEN)) {
> Error *err = NULL;
>
> socket_listen_cleanup(ioc->fd, &err);
> diff --git a/io/channel-tls.c b/io/channel-tls.c
> index 9a8525c..f7bb0e3 100644
> --- a/io/channel-tls.c
> +++ b/io/channel-tls.c
> @@ -111,7 +111,7 @@ qio_channel_tls_new_client(QIOChannel *master,
> ioc = QIO_CHANNEL(tioc);
>
> tioc->master = master;
> - if (master->features & (1 << QIO_CHANNEL_FEATURE_SHUTDOWN)) {
> + if (qio_channel_has_feature(master, QIO_CHANNEL_FEATURE_SHUTDOWN)) {
> ioc->features |= (1 << QIO_CHANNEL_FEATURE_SHUTDOWN);
> }
> object_ref(OBJECT(master));
> diff --git a/io/channel-websock.c b/io/channel-websock.c
> index 533bd4b..75df03e 100644
> --- a/io/channel-websock.c
> +++ b/io/channel-websock.c
> @@ -497,7 +497,7 @@ qio_channel_websock_new_server(QIOChannel *master)
> ioc = QIO_CHANNEL(wioc);
>
> wioc->master = master;
> - if (master->features & (1 << QIO_CHANNEL_FEATURE_SHUTDOWN)) {
> + if (qio_channel_has_feature(master, QIO_CHANNEL_FEATURE_SHUTDOWN)) {
> ioc->features |= (1 << QIO_CHANNEL_FEATURE_SHUTDOWN);
> }
> object_ref(OBJECT(master));
> diff --git a/io/channel.c b/io/channel.c
> index 923c465..e50325c 100644
> --- a/io/channel.c
> +++ b/io/channel.c
> @@ -40,7 +40,7 @@ ssize_t qio_channel_readv_full(QIOChannel *ioc,
> QIOChannelClass *klass = QIO_CHANNEL_GET_CLASS(ioc);
>
> if ((fds || nfds) &&
> - !(ioc->features & (1 << QIO_CHANNEL_FEATURE_FD_PASS))) {
> + !qio_channel_has_feature(ioc, QIO_CHANNEL_FEATURE_FD_PASS)) {
> error_setg_errno(errp, EINVAL,
> "Channel does not support file descriptor passing");
> return -1;
> @@ -60,7 +60,7 @@ ssize_t qio_channel_writev_full(QIOChannel *ioc,
> QIOChannelClass *klass = QIO_CHANNEL_GET_CLASS(ioc);
>
> if ((fds || nfds) &&
> - !(ioc->features & (1 << QIO_CHANNEL_FEATURE_FD_PASS))) {
> + !qio_channel_has_feature(ioc, QIO_CHANNEL_FEATURE_FD_PASS)) {
> error_setg_errno(errp, EINVAL,
> "Channel does not support file descriptor passing");
> return -1;
> --
> 1.7.1
>
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [Qemu-devel] [PATCH 0/3] io: Various fixes around QIOChannel Features
2016-09-28 12:05 [Qemu-devel] [PATCH 0/3] io: Various fixes around QIOChannel Features Felipe Franciosi
` (2 preceding siblings ...)
2016-09-28 12:05 ` [Qemu-devel] [PATCH 3/3] io: Introduce a qio_channel_set_feature() helper Felipe Franciosi
@ 2016-09-28 12:29 ` no-reply
3 siblings, 0 replies; 6+ messages in thread
From: no-reply @ 2016-09-28 12:29 UTC (permalink / raw)
To: felipe; +Cc: famz, berrange, marcandre.lureau, pbonzini, qemu-devel
Hi,
Your series failed automatic build test. Please find the testing commands and
their output below. If you have docker installed, you can probably reproduce it
locally.
Type: series
Message-id: 1475064320-8517-1-git-send-email-felipe@nutanix.com
Subject: [Qemu-devel] [PATCH 0/3] io: Various fixes around QIOChannel Features
=== TEST SCRIPT BEGIN ===
#!/bin/bash
set -e
git submodule update --init dtc
# Let docker tests dump environment info
export SHOW_ENV=1
make J=8 docker-test-quick@centos6
make J=8 docker-test-mingw@fedora
=== TEST SCRIPT END ===
Updating 3c8cf5a9c21ff8782164d1def7f44bd888713384
Switched to a new branch 'test'
d2c20a3 io: Introduce a qio_channel_set_feature() helper
53aa16b io: Use qio_channel_has_feature() where applicable
963cbca io: Fix double shift usages on QIOChannel features
=== OUTPUT BEGIN ===
Submodule 'dtc' (git://git.qemu-project.org/dtc.git) registered for path 'dtc'
Cloning into 'dtc'...
Submodule path 'dtc': checked out '65cc4d2748a2c2e6f27f1cf39e07a5dbabd80ebf'
BUILD centos6
ARCHIVE qemu.tgz
ARCHIVE dtc.tgz
COPY RUNNER
RUN test-quick in centos6
Packages installed:
SDL-devel-1.2.14-7.el6_7.1.x86_64
ccache-3.1.6-2.el6.x86_64
epel-release-6-8.noarch
gcc-4.4.7-17.el6.x86_64
git-1.7.1-4.el6_7.1.x86_64
glib2-devel-2.28.8-5.el6.x86_64
libfdt-devel-1.4.0-1.el6.x86_64
make-3.81-23.el6.x86_64
package g++ is not installed
pixman-devel-0.32.8-1.el6.x86_64
tar-1.23-15.el6_8.x86_64
zlib-devel-1.2.3-29.el6.x86_64
Environment variables:
PACKAGES=libfdt-devel ccache tar git make gcc g++ zlib-devel glib2-devel SDL-devel pixman-devel epel-release
HOSTNAME=980d4a20a795
TERM=xterm
MAKEFLAGS= -j8
HISTSIZE=1000
J=8
USER=root
CCACHE_DIR=/var/tmp/ccache
EXTRA_CONFIGURE_OPTS=
V=
SHOW_ENV=1
MAIL=/var/spool/mail/root
PATH=/usr/lib/ccache:/usr/lib64/ccache:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
PWD=/
LANG=en_US.UTF-8
TARGET_LIST=
HISTCONTROL=ignoredups
SHLVL=1
HOME=/root
TEST_DIR=/tmp/qemu-test
LOGNAME=root
LESSOPEN=||/usr/bin/lesspipe.sh %s
FEATURES= dtc
DEBUG=
G_BROKEN_FILENAMES=1
CCACHE_HASHDIR=
_=/usr/bin/env
Configure options:
--enable-werror --target-list=x86_64-softmmu,aarch64-softmmu --prefix=/tmp/qemu-test/src/tests/docker/install
No C++ compiler available; disabling C++ specific optional code
Install prefix /tmp/qemu-test/src/tests/docker/install
BIOS directory /tmp/qemu-test/src/tests/docker/install/share/qemu
binary directory /tmp/qemu-test/src/tests/docker/install/bin
library directory /tmp/qemu-test/src/tests/docker/install/lib
module directory /tmp/qemu-test/src/tests/docker/install/lib/qemu
libexec directory /tmp/qemu-test/src/tests/docker/install/libexec
include directory /tmp/qemu-test/src/tests/docker/install/include
config directory /tmp/qemu-test/src/tests/docker/install/etc
local state directory /tmp/qemu-test/src/tests/docker/install/var
Manual directory /tmp/qemu-test/src/tests/docker/install/share/man
ELF interp prefix /usr/gnemul/qemu-%M
Source path /tmp/qemu-test/src
C compiler cc
Host C compiler cc
C++ compiler
Objective-C compiler cc
ARFLAGS rv
CFLAGS -O2 -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=2 -pthread -I/usr/include/glib-2.0 -I/usr/lib64/glib-2.0/include -g
QEMU_CFLAGS -I/usr/include/pixman-1 -fPIE -DPIE -m64 -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -Wstrict-prototypes -Wredundant-decls -Wall -Wundef -Wwrite-strings -Wmissing-prototypes -fno-strict-aliasing -fno-common -fwrapv -Wendif-labels -Wmissing-include-dirs -Wempty-body -Wnested-externs -Wformat-security -Wformat-y2k -Winit-self -Wignored-qualifiers -Wold-style-declaration -Wold-style-definition -Wtype-limits -fstack-protector-all
LDFLAGS -Wl,--warn-common -Wl,-z,relro -Wl,-z,now -pie -m64 -g
make make
install install
python python -B
smbd /usr/sbin/smbd
module support no
host CPU x86_64
host big endian no
target list x86_64-softmmu aarch64-softmmu
tcg debug enabled no
gprof enabled no
sparse enabled no
strip binaries yes
profiler no
static build no
pixman system
SDL support yes (1.2.14)
GTK support no
GTK GL support no
VTE support no
TLS priority NORMAL
GNUTLS support no
GNUTLS rnd no
libgcrypt no
libgcrypt kdf no
nettle no
nettle kdf no
libtasn1 no
curses support no
virgl support no
curl support no
mingw32 support no
Audio drivers oss
Block whitelist (rw)
Block whitelist (ro)
VirtFS support no
VNC support yes
VNC SASL support no
VNC JPEG support no
VNC PNG support no
xen support no
brlapi support no
bluez support no
Documentation no
PIE yes
vde support no
netmap support no
Linux AIO support no
ATTR/XATTR support yes
Install blobs yes
KVM support yes
RDMA support no
TCG interpreter no
fdt support yes
preadv support yes
fdatasync yes
madvise yes
posix_madvise yes
libcap-ng support no
vhost-net support yes
vhost-scsi support yes
vhost-vsock support yes
Trace backends log
spice support no
rbd support no
xfsctl support no
smartcard support no
libusb no
usb net redir no
OpenGL support no
OpenGL dmabufs no
libiscsi support no
libnfs support no
build guest agent yes
QGA VSS support no
QGA w32 disk info no
QGA MSI support no
seccomp support no
coroutine backend ucontext
coroutine pool yes
GlusterFS support no
Archipelago support no
gcov gcov
gcov enabled no
TPM support yes
libssh2 support no
TPM passthrough yes
QOM debugging yes
lzo support no
snappy support no
bzip2 support no
NUMA host support no
tcmalloc support no
jemalloc support no
avx2 optimization no
replication support yes
GEN x86_64-softmmu/config-devices.mak.tmp
GEN aarch64-softmmu/config-devices.mak.tmp
GEN config-host.h
GEN qemu-options.def
GEN qmp-commands.h
GEN qapi-types.h
GEN qapi-visit.h
GEN qapi-event.h
GEN x86_64-softmmu/config-devices.mak
GEN aarch64-softmmu/config-devices.mak
GEN qmp-introspect.h
GEN module_block.h
GEN tests/test-qapi-types.h
GEN tests/test-qapi-visit.h
GEN tests/test-qmp-commands.h
GEN tests/test-qapi-event.h
GEN tests/test-qmp-introspect.h
GEN config-all-devices.mak
GEN trace/generated-events.h
GEN trace/generated-tracers.h
GEN trace/generated-tcg-tracers.h
GEN trace/generated-helpers-wrappers.h
GEN trace/generated-helpers.h
CC tests/qemu-iotests/socket_scm_helper.o
GEN qga/qapi-generated/qga-qapi-types.h
GEN qga/qapi-generated/qga-qapi-visit.h
GEN qga/qapi-generated/qga-qmp-commands.h
GEN qga/qapi-generated/qga-qapi-types.c
GEN qga/qapi-generated/qga-qapi-visit.c
GEN qga/qapi-generated/qga-qmp-marshal.c
GEN qmp-introspect.c
GEN qapi-types.c
GEN qapi-visit.c
GEN qapi-event.c
CC qapi/qapi-visit-core.o
CC qapi/qapi-dealloc-visitor.o
CC qapi/qmp-input-visitor.o
CC qapi/qmp-output-visitor.o
CC qapi/qmp-registry.o
CC qapi/qmp-dispatch.o
CC qapi/string-input-visitor.o
CC qapi/string-output-visitor.o
CC qapi/opts-visitor.o
CC qapi/qapi-clone-visitor.o
CC qapi/qmp-event.o
CC qapi/qapi-util.o
CC qobject/qnull.o
CC qobject/qint.o
CC qobject/qstring.o
CC qobject/qdict.o
CC qobject/qlist.o
CC qobject/qfloat.o
CC qobject/qbool.o
CC qobject/qjson.o
CC qobject/qobject.o
CC qobject/json-lexer.o
CC qobject/json-streamer.o
CC qobject/json-parser.o
GEN trace/generated-events.c
CC trace/control.o
CC trace/qmp.o
CC util/osdep.o
CC util/cutils.o
CC util/unicode.o
CC util/qemu-timer-common.o
CC util/bufferiszero.o
CC util/compatfd.o
CC util/event_notifier-posix.o
CC util/mmap-alloc.o
CC util/oslib-posix.o
CC util/qemu-openpty.o
CC util/qemu-thread-posix.o
CC util/memfd.o
CC util/envlist.o
CC util/path.o
CC util/module.o
CC util/bitmap.o
CC util/bitops.o
CC util/hbitmap.o
CC util/fifo8.o
CC util/acl.o
CC util/error.o
CC util/qemu-error.o
CC util/iov.o
CC util/id.o
CC util/qemu-config.o
CC util/qemu-sockets.o
CC util/notify.o
CC util/uri.o
CC util/qemu-option.o
CC util/qemu-progress.o
CC util/hexdump.o
CC util/crc32c.o
CC util/uuid.o
CC util/throttle.o
CC util/getauxval.o
CC util/readline.o
CC util/rfifolock.o
CC util/rcu.o
CC util/qemu-coroutine.o
CC util/qemu-coroutine-lock.o
CC util/qemu-coroutine-io.o
CC util/qemu-coroutine-sleep.o
CC util/coroutine-ucontext.o
CC util/buffer.o
CC util/timed-average.o
CC util/base64.o
CC util/qdist.o
CC util/log.o
CC util/range.o
CC util/qht.o
CC crypto/pbkdf-stub.o
CC stubs/arch-query-cpu-def.o
CC stubs/arch-query-cpu-model-expansion.o
/tmp/qemu-test/src/util/qht.c: In function ‘qht_reset_size’:
/tmp/qemu-test/src/util/qht.c:413: warning: ‘new’ may be used uninitialized in this function
CC stubs/arch-query-cpu-model-baseline.o
CC stubs/arch-query-cpu-model-comparison.o
CC stubs/bdrv-next-monitor-owned.o
CC stubs/blk-commit-all.o
CC stubs/blockdev-close-all-bdrv-states.o
CC stubs/clock-warp.o
CC stubs/cpu-get-clock.o
CC stubs/cpu-get-icount.o
CC stubs/fdset-add-fd.o
CC stubs/dump.o
CC stubs/fdset-find-fd.o
CC stubs/fdset-get-fd.o
CC stubs/fdset-remove-fd.o
CC stubs/gdbstub.o
CC stubs/get-fd.o
CC stubs/get-next-serial.o
CC stubs/get-vm-name.o
CC stubs/iothread-lock.o
CC stubs/is-daemonized.o
CC stubs/machine-init-done.o
CC stubs/migr-blocker.o
CC stubs/mon-is-qmp.o
CC stubs/mon-printf.o
CC stubs/monitor-init.o
CC stubs/notify-event.o
CC stubs/qtest.o
CC stubs/replay.o
CC stubs/replay-user.o
CC stubs/reset.o
CC stubs/runstate-check.o
CC stubs/set-fd-handler.o
CC stubs/slirp.o
CC stubs/sysbus.o
CC stubs/trace-control.o
CC stubs/uuid.o
CC stubs/vm-stop.o
CC stubs/vmstate.o
CC stubs/cpus.o
CC stubs/kvm.o
CC stubs/qmp_pc_dimm_device_list.o
CC stubs/target-monitor-defs.o
CC stubs/target-get-monitor-def.o
CC stubs/vhost.o
CC stubs/iohandler.o
CC stubs/smbios_type_38.o
CC stubs/ipmi.o
CC stubs/pc_madt_cpu_entry.o
CC contrib/ivshmem-client/ivshmem-client.o
CC contrib/ivshmem-client/main.o
CC contrib/ivshmem-server/ivshmem-server.o
CC contrib/ivshmem-server/main.o
CC qemu-nbd.o
CC async.o
CC thread-pool.o
CC block.o
CC blockjob.o
CC main-loop.o
CC iohandler.o
CC qemu-timer.o
CC aio-posix.o
CC qemu-io-cmds.o
CC replication.o
CC block/raw_bsd.o
CC block/qcow.o
CC block/vdi.o
CC block/vmdk.o
CC block/cloop.o
CC block/vpc.o
CC block/bochs.o
CC block/vvfat.o
CC block/dmg.o
CC block/qcow2.o
CC block/qcow2-refcount.o
CC block/qcow2-cluster.o
CC block/qcow2-snapshot.o
CC block/qcow2-cache.o
CC block/qed.o
CC block/qed-gencb.o
CC block/qed-l2-cache.o
CC block/qed-table.o
CC block/qed-cluster.o
CC block/qed-check.o
CC block/vhdx.o
CC block/vhdx-endian.o
CC block/vhdx-log.o
CC block/quorum.o
CC block/parallels.o
CC block/blkdebug.o
CC block/blkverify.o
CC block/blkreplay.o
CC block/block-backend.o
CC block/snapshot.o
CC block/qapi.o
CC block/raw-posix.o
CC block/null.o
CC block/mirror.o
CC block/commit.o
CC block/io.o
CC block/throttle-groups.o
CC block/nbd.o
CC block/nbd-client.o
CC block/sheepdog.o
CC block/accounting.o
CC block/dirty-bitmap.o
CC block/write-threshold.o
CC block/backup.o
CC block/crypto.o
CC block/replication.o
CC nbd/server.o
CC nbd/client.o
CC nbd/common.o
CC crypto/init.o
CC crypto/hash.o
CC crypto/aes.o
CC crypto/hash-glib.o
CC crypto/desrfb.o
CC crypto/cipher.o
CC crypto/tlscreds.o
CC crypto/tlscredsanon.o
CC crypto/tlscredsx509.o
CC crypto/tlssession.o
CC crypto/secret.o
CC crypto/random-platform.o
CC crypto/pbkdf.o
CC crypto/ivgen.o
CC crypto/ivgen-essiv.o
CC crypto/ivgen-plain.o
CC crypto/ivgen-plain64.o
CC crypto/afsplit.o
CC crypto/xts.o
CC crypto/block.o
CC crypto/block-qcow.o
CC crypto/block-luks.o
CC io/channel.o
CC io/channel-buffer.o
CC io/channel-command.o
CC io/channel-file.o
CC io/channel-socket.o
CC io/channel-tls.o
CC io/channel-watch.o
CC io/channel-websock.o
CC io/channel-util.o
CC io/task.o
/tmp/qemu-test/src/io/channel-socket.c: In function ‘qio_channel_socket_accept’:
/tmp/qemu-test/src/io/channel-socket.c:383: error: invalid initializer
/tmp/qemu-test/src/io/channel-socket.c:384: warning: implicit declaration of function ‘qio_channel_set_features’
/tmp/qemu-test/src/io/channel-socket.c:384: warning: nested extern declaration of ‘qio_channel_set_features’
/tmp/qemu-test/src/io/channel-socket.c: In function ‘qio_channel_socket_finalize’:
/tmp/qemu-test/src/io/channel-socket.c:407: error: invalid initializer
/tmp/qemu-test/src/io/channel-socket.c:408: error: incompatible type for argument 1 of ‘qio_channel_has_feature’
/tmp/qemu-test/src/include/io/channel.h:148: note: expected ‘struct QIOChannel *’ but argument is of type ‘QIOChannel’
make: *** [io/channel-socket.o] Error 1
make: *** Waiting for unfinished jobs....
tests/docker/Makefile.include:107: recipe for target 'docker-run-test-quick@centos6' failed
make: *** [docker-run-test-quick@centos6] Error 2
=== OUTPUT END ===
Test command exited with code: 2
---
Email generated automatically by Patchew [http://patchew.org/].
Please send your feedback to patchew-devel@freelists.org
^ permalink raw reply [flat|nested] 6+ messages in thread
end of thread, other threads:[~2016-09-28 12:30 UTC | newest]
Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2016-09-28 12:05 [Qemu-devel] [PATCH 0/3] io: Various fixes around QIOChannel Features Felipe Franciosi
2016-09-28 12:05 ` [Qemu-devel] [PATCH 1/3] io: Fix double shift usages on QIOChannel features Felipe Franciosi
2016-09-28 12:05 ` [Qemu-devel] [PATCH 2/3] io: Use qio_channel_has_feature() where applicable Felipe Franciosi
2016-09-28 12:24 ` Felipe Franciosi
2016-09-28 12:05 ` [Qemu-devel] [PATCH 3/3] io: Introduce a qio_channel_set_feature() helper Felipe Franciosi
2016-09-28 12:29 ` [Qemu-devel] [PATCH 0/3] io: Various fixes around QIOChannel Features no-reply
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.