On 05/30/2013 01:39 AM, Michal Privoznik wrote:
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.
I'm still chasing that down
(
https://lists.gnu.org/archive/html/bug-gnulib/2013-05/msg00105.html),
but at this point, I'd feel safer delaying a gnulib bump until after
1.0.6 is out, since it has missed rc2.
>
> 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
incompatible pointer type
> /usr/include/sys/socket.h:42:11: note: expected 'const struct msghdr *' but
argument is of type 'struct msghdr *'
As far as I can tell, this seems like a bug in cygwin's gcc (4.5.3);
still no idea how I will work around that yet.
> -# 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
Thanks; I've pushed this patch.
--
Eric Blake eblake redhat com +1-919-301-3266
Libvirt virtualization library
http://libvirt.org