This fixes compilation with glib versions up to 2.30, such as the one in CentOS 6.
Even with this patch the test fails though: ERROR:/tmp/qemu-test/src/tests/vhost-user-test.c:165:wait_for_fds: assertion failed: (s->fds_num) Signed-off-by: Paolo Bonzini <pbonz...@redhat.com> --- tests/vhost-user-test.c | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/tests/vhost-user-test.c b/tests/vhost-user-test.c index 8b2164b..4de64df 100644 --- a/tests/vhost-user-test.c +++ b/tests/vhost-user-test.c @@ -127,21 +127,24 @@ typedef struct TestServer { int fds_num; int fds[VHOST_MEMORY_MAX_NREGIONS]; VhostUserMemory memory; - GMutex data_mutex; - GCond data_cond; + CompatGMutex data_mutex; + CompatGCond data_cond; int log_fd; uint64_t rings; } TestServer; #if !GLIB_CHECK_VERSION(2, 32, 0) -static gboolean g_cond_wait_until(CompatGCond cond, CompatGMutex mutex, +static gboolean g_cond_wait_until(CompatGCond *cond, CompatGMutex *mutex, gint64 end_time) { gboolean ret = FALSE; end_time -= g_get_monotonic_time(); GTimeVal time = { end_time / G_TIME_SPAN_SECOND, end_time % G_TIME_SPAN_SECOND }; - ret = g_cond_timed_wait(cond, mutex, &time); + g_assert(mutex->once.status != G_ONCE_STATUS_PROGRESS); + g_once(&cond->once, do_g_cond_new, NULL); + ret = g_cond_timed_wait((GCond *) cond->once.retval, + (GMutex *) mutex->once.retval, &time); return ret; } #endif -- 2.7.4