
On Tue, Aug 28, 2012 at 10:01:27AM -0700, Jason Helfman wrote:
On Tue, Aug 28, 2012 at 04:05:36PM +0800, Daniel Veillard thus spake:
I don't like too much the idea of adding kernel defines in our headers. Basically this is all due to commits d57567940153147f4d43875fb92c3030b3178b03 and 080bf330e3749d94ebe094f8deca0e3e67d3f2fe
The fact that it breaks only in daemon.c, i.e. after the library compiled is a good infocation that the guards #if WITH_VIRTUALPORT in src/util/virnetdevvportprofile.c #if WITH_MACVTAP in src/util/virnetdevmacvlan.c and #if defined(__linux__) && defined(HAVE_LIBNL) && defined(IFLA_VF_MAX) in src/util/virnetdev.c
seems sufficient to avoid the portability problem in those files and the remaining problem is really about daemon/libvirtd.c and I would suggest a fix along those lines:
Daniel
diff --git a/daemon/libvirtd.c b/daemon/libvirtd.c index 19dd26b..352d4fe 100644 --- a/daemon/libvirtd.c +++ b/daemon/libvirtd.c @@ -1312,17 +1312,21 @@ int main(int argc, char **argv) { goto cleanup; }
+#if defined(__linux__) && defined(NETLINK_ROUTE) /* Register the netlink event service for NETLINK_ROUTE */ if (virNetlinkEventServiceStart(NETLINK_ROUTE, 0) < 0) { ret = VIR_DAEMON_ERR_NETWORK; goto cleanup; } +#endif
+#if defined(__linux__) && defined(NETLINK_KOBJECT_UEVENT) /* Register the netlink event service for NETLINK_KOBJECT_UEVENT */ if (virNetlinkEventServiceStart(NETLINK_KOBJECT_UEVENT, 1) < 0) { ret = VIR_DAEMON_ERR_NETWORK; goto cleanup; } +#endif
/* Run event loop. */ virNetServerRun(srv); -- Daniel Veillard | libxml Gnome XML XSLT toolkit http://xmlsoft.org/ daniel@veillard.com | Rpmfind RPM search engine http://rpmfind.net/ http://veillard.com/ | virtualization library http://libvirt.org/
This is building as expected with your new patch for FreeBSD. Here is a link to the build logs.
Thanks Justin and Jason for the feedback ! I pushed as a result :-) Daniel -- Daniel Veillard | libxml Gnome XML XSLT toolkit http://xmlsoft.org/ daniel@veillard.com | Rpmfind RPM search engine http://rpmfind.net/ http://veillard.com/ | virtualization library http://libvirt.org/