From: Eric Blake Date: Mon, 13 Jun 2011 23:50:09 +0000 (-0600) Subject: build: fix build on Cygwin X-Git-Tag: v0.9.8-rc2~3 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=c74a2a03f025169e8d6c3e5ddc970963c1c76418;p=thirdparty%2Flibvirt.git build: fix build on Cygwin The RPC fixups needed on Linux are also needed on cygwin, and worked without further tweaking to the list of fixups. Also, unlike BSD, Cygwin exports 'struct ifreq', but unlike Linux, Cygwin lacks the ioctls that we were using 'struct ifreq' to access. This patch allows compilation under cygwin. * src/rpc/genprotocol.pl: Also perform fixups on cygwin. * src/util/virnetdev.c (HAVE_STRUCT_IFREQ): Also require AF_PACKET definition. * src/util/virnetdevbridge.c (virNetDevSetupControlFull): Only compile if SIOCBRADDBR works. --- diff --git a/src/rpc/genprotocol.pl b/src/rpc/genprotocol.pl index 166508b649..7af1b3bd12 100755 --- a/src/rpc/genprotocol.pl +++ b/src/rpc/genprotocol.pl @@ -31,7 +31,7 @@ open RPCGEN, "-|", $rpcgen, $mode, $xdrdef open TARGET, ">$target" or die "cannot create $target: $!"; -my $fixup = $^O eq "linux"; +my $fixup = $^O eq "linux" || $^O eq "cygwin"; if ($mode eq "-c") { print TARGET "#include \n"; diff --git a/src/util/virnetdev.c b/src/util/virnetdev.c index 3187215079..fee87ef3bb 100644 --- a/src/util/virnetdev.c +++ b/src/util/virnetdev.c @@ -38,6 +38,8 @@ #ifdef __linux__ # include # include +#elif !defined(AF_PACKET) +# undef HAVE_STRUCT_IFREQ #endif #define VIR_FROM_THIS VIR_FROM_NONE diff --git a/src/util/virnetdevbridge.c b/src/util/virnetdevbridge.c index 0440a738fc..e246b2c53d 100644 --- a/src/util/virnetdevbridge.c +++ b/src/util/virnetdevbridge.c @@ -45,7 +45,7 @@ #define VIR_FROM_THIS VIR_FROM_NONE -#ifdef HAVE_NET_IF_H +#if defined(HAVE_NET_IF_H) && defined(SIOCBRADDBR) static int virNetDevSetupControlFull(const char *ifname, struct ifreq *ifr, int domain,