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

Reply via email to