diff --git a/src/util/virnetdevbridge.c b/src/util/virnetdevbridge.c index ae9276c069..5d52e2385b 100644 --- a/src/util/virnetdevbridge.c +++ b/src/util/virnetdevbridge.c @@ -39,7 +39,18 @@ #ifdef __linux__ # include # include /* HZ */ +/* Depending on the version of kernel vs. glibc, there may be a collision + * between and kernel IPv6 structures. The different types + * are ABI compatible, but choke the C type system; work around it by + * using temporary redefinitions. */ +# define in6_addr in6_addr_ +# define sockaddr_in6 sockaddr_in6_ +# define ipv6_mreq ipv6_mreq_ +# include # include /* SYSFS_BRIDGE_ATTR */ +# undef in6_addr +# undef sockaddr_in6 +# undef ipv6_mreq # define JIFFIES_TO_MS(j) (((j)*1000)/HZ) # define MS_TO_JIFFIES(ms) (((ms)*HZ)/1000)