[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