From c74a2a03f025169e8d6c3e5ddc970963c1c76418 Mon Sep 17 00:00:00 2001 From: Eric Blake Date: Mon, 13 Jun 2011 17:50:09 -0600 Subject: [PATCH] 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. --- src/rpc/genprotocol.pl | 2 +- src/util/virnetdev.c | 2 ++ src/util/virnetdevbridge.c | 2 +- 3 files changed, 4 insertions(+), 2 deletions(-) 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,