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.
This commit is contained in:
Eric Blake 2011-06-13 17:50:09 -06:00
parent 75da320087
commit c74a2a03f0
3 changed files with 4 additions and 2 deletions

View File

@ -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 <config.h>\n";

View File

@ -38,6 +38,8 @@
#ifdef __linux__
# include <linux/sockios.h>
# include <linux/if_vlan.h>
#elif !defined(AF_PACKET)
# undef HAVE_STRUCT_IFREQ
#endif
#define VIR_FROM_THIS VIR_FROM_NONE

View File

@ -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,