[libvirt] [PATCH] build: fix build on Cygwin

Daniel P. Berrange berrange at redhat.com
Mon Dec 5 11:17:10 UTC 2011


On Sat, Dec 03, 2011 at 01:03:08PM -0700, Eric Blake wrote:
> 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.
> ---
> 
> Pushing under the build-breaker rule.
> 
>  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 166508b..7af1b3b 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 <config.h>\n";
> diff --git a/src/util/virnetdev.c b/src/util/virnetdev.c
> index 3187215..a1c62e3 100644
> --- a/src/util/virnetdev.c
> +++ b/src/util/virnetdev.c
> @@ -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
> diff --git a/src/util/virnetdevbridge.c b/src/util/virnetdevbridge.c
> index 0440a73..e246b2c 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,

ACK


Daniel
-- 
|: http://berrange.com      -o-    http://www.flickr.com/photos/dberrange/ :|
|: http://libvirt.org              -o-             http://virt-manager.org :|
|: http://autobuild.org       -o-         http://search.cpan.org/~danberr/ :|
|: http://entangle-photo.org       -o-       http://live.gnome.org/gtk-vnc :|




More information about the libvir-list mailing list