[libvirt] [PATCH] build: port qemu to cygwin

Michal Privoznik mprivozn at redhat.com
Thu May 30 07:39:47 UTC 2013


On 30.05.2013 05:04, Eric Blake wrote:
> A cygwin build of the qemu driver fails with:
> 
> qemu/qemu_process.c: In function 'qemuPrepareCpumap':
> qemu/qemu_process.c:1803:31: error: 'CPU_SETSIZE' undeclared (first use in this function)
> 
> CPU_SETSIZE is a Linux extension in <sched.h>; a bit more portable
> is using sysconf if _SC_NPROCESSORS_CONF is defined (several platforms
> have it, including Cygwin).  Ultimately, I would have preferred to
> use gnulib's 'nproc' module, but it is currently under an incompatible
> license.
> 
> * src/qemu/qemu_conf.h (QEMUD_CPUMASK_LEN): Provide definition on
> cygwin.
> 
> Signed-off-by: Eric Blake <eblake at redhat.com>
> ---
> 
> I'll wait for a review on this one, particularly since I'm still
> trying to solve another qemu failure on cygwin:
> 
> qemu/qemu_monitor.c:418:9: error: passing argument 2 of 'sendmsg' from incmpatible pointer type
> /usr/include/sys/socket.h:42:11: note: expected 'const struct msghdr *' but argument is of type 'struct msghdr *'
> 
>  src/qemu/qemu_conf.h | 8 +++++++-
>  1 file changed, 7 insertions(+), 1 deletion(-)
> 
> diff --git a/src/qemu/qemu_conf.h b/src/qemu/qemu_conf.h
> index df0791e..42566b4 100644
> --- a/src/qemu/qemu_conf.h
> +++ b/src/qemu/qemu_conf.h
> @@ -45,7 +45,13 @@
>  # include "locking/lock_manager.h"
>  # include "qemu_capabilities.h"
> 
> -# define QEMUD_CPUMASK_LEN CPU_SETSIZE
> +# ifdef CPU_SETSIZE /* Linux */
> +#  define QEMUD_CPUMASK_LEN CPU_SETSIZE
> +# elif defined(_SC_NPROCESSORS_CONF) /* Cygwin */
> +#  define QEMUD_CPUMASK_LEN (sysconf(_SC_NPROCESSORS_CONF))
> +# else
> +#  error "Port me"
> +# endif
> 
>  typedef struct _virQEMUCloseCallbacks virQEMUCloseCallbacks;
>  typedef virQEMUCloseCallbacks *virQEMUCloseCallbacksPtr;
> 

ACK

Michal




More information about the libvir-list mailing list