On 15 May 2013 16:48, Paolo Bonzini <pbonz...@redhat.com> wrote: > Here is an RCU implementation based on liburcu.
Doesn't compile on MacOSX/clang: CC util/rcu.o In file included from util/rcu.c:35: /Users/pm215/src/qemu/include/qemu/rcu.h:112:6: warning: implicit declaration of function 'g_private_replace' is invalid in C99 [-Wimplicit-function-declaration] g_private_replace(&rcu_reader_key, ^ util/rcu.c:67:1: warning: implicit declaration of function 'G_PRIVATE_INIT' is invalid in C99 [-Wimplicit-function-declaration] DEFINE_RCU_READER(); ^ /Users/pm215/src/qemu/include/qemu/rcu.h:103:32: note: expanded from macro 'DEFINE_RCU_READER' GPrivate rcu_reader_key = G_PRIVATE_INIT(g_free) ^ util/rcu.c:67:1: error: variable has incomplete type 'GPrivate' (aka 'struct _GPrivate') DEFINE_RCU_READER(); ^ /Users/pm215/src/qemu/include/qemu/rcu.h:103:15: note: expanded from macro 'DEFINE_RCU_READER' GPrivate rcu_reader_key = G_PRIVATE_INIT(g_free) ^ /sw/include/glib-2.0/glib/gthread.h:74:16: note: forward declaration of 'struct _GPrivate' typedef struct _GPrivate GPrivate; ^ 2 warnings and 1 error generated. make: *** [util/rcu.o] Error 1 g_private_replace() didn't come in until glib 2.32... thanks -- PMM