Yes, for sure we need to do a check. However, this would involve - I think - some non-trivial modifications to net/netmap.c, because without NS_MOREFRAG you cannot split a packet over more "netmap slots/descriptors" (both tx and rx side)
Therefore I would ask (manly Luigi, since netmap is in-tree in FreeBSD): Wouldn't it be better to force --disable-netmap when we realize that NETMAP_API (version number for the netmap API) is less than the value required by QEMU? This can be done in ./configure. In this way we keep the QEMU code cleaner. Thanks, Vincenzo 2014-02-14 10:52 GMT+01:00 Stefan Hajnoczi <stefa...@redhat.com>: > On Wed, Feb 12, 2014 at 10:01:01PM +0400, Michael Tokarev wrote: > > After this patch, qemu fails to build on freebsd with the following > > error message: > > > > net/netmap.c: In function 'netmap_receive_iov': > > net/netmap.c:307: error: 'NS_MOREFRAG' undeclared (first use in this > function) > > net/netmap.c:307: error: (Each undeclared identifier is reported only > once > > net/netmap.c:307: error: for each function it appears in.) > > net/netmap.c: In function 'netmap_send': > > net/netmap.c:356: error: 'NS_MOREFRAG' undeclared (first use in this > function) > > gmake: *** [net/netmap.o] Error 1 > > > > I didn't enable netmap support by default, configure enabled it > > automatically. > > > > Freebsd has /usr/include/net/netmap.h and netmap_user.h out of the box. > > I've no idea what is inside and how compatible it is with whatever > > qemu expects. > > > > I had to explicitly use --disable-netmap for qemu to build on freebsd. > > > > This is FreeBSD 9.1-RELEASE, FWIW. > > Vincenzo: Do you need to add a ./configure check so NS_MOREFRAG is only > used when the host kernel supports it? > -- Vincenzo Maffione