On 04/29/2013 11:48 AM, Eric Blake wrote: > On 04/27/2013 09:50 AM, Roman Bogorodskiy wrote: >> FreeBSD (and maybe other BSDs) have different member >> names in struct ifreq when compared to Linux, such as: >> >> - uses ifr_data instead of ifr_newname for setting >> interface names >> - uses ifr_index instead of ifr_ifindex for interface >> index >> >> Also, add a check for SIOCGIFHWADDR for virNetDevValidateConfig(). >> >> Use AF_LOCAL if AF_PACKET is not available. >> --- > > Overall, looks sane; I'll probably apply the touchups mentioned and push > later today after testing on my own FreeBSD VM.
With this patch, I'm getting a compile failure on FreeBSD 8.2:
util/virnetdev.c:667: error: 'struct ifreq' has no member named
'ifr_ifindex'
Looking further, I see <net/if.h> has:
struct ifreq {
...
union {
...
short ifru_index;
} ifr_ifru;
#define ifr_index ifr_ifru.ifru_index
};
so it should have picked the ifreq.ifr_index path; next looking at
config.log, I see:
configure:67334: checking for struct ifreq.ifr_index
configure:67334: gcc -std=gnu99 -c -g -D_THREAD_SAFE -D_THREAD_SAFE
conftest.c >&5
In file included from conftest.c:540:
/usr/include/net/if.h:305: error: field 'ifru_addr' has incomplete type
aha - BSD's <net/if.h> is not self-contained.
I'm now testing a minor tweak to configure.ac to include further pre-req
headers; I'll post the modified version of your patch that finally gets
things working for me.
--
Eric Blake eblake redhat com +1-919-301-3266
Libvirt virtualization library http://libvirt.org
signature.asc
Description: OpenPGP digital signature
-- libvir-list mailing list [email protected] https://www.redhat.com/mailman/listinfo/libvir-list
