Re: [libvirt] Entering freeze and release of cadidate release 1 of 1.2.10

Hi all, The recent commit with SHA1 cc0e8c244d080f56392278e836cc378ba848e7aa, "util: Functions to update host network device's multicast filter," breaks the build on FreeBSD, so please address this before 1.2.10 release. Here is the output from Clang: CC util/libvirt_util_la-virnetdev.lo util/virnetdev.c:1995:9: error: no member named 'ifr_hwaddr' in 'struct ifreq' ifr.ifr_hwaddr.sa_family = AF_UNSPEC; ~~~ ^ util/virnetdev.c:1996:52: error: no member named 'ifr_hwaddr' in 'struct ifreq' virMacAddrGetRaw(macaddr, (unsigned char *)ifr.ifr_hwaddr.sa_data); ~~~ ^ util/virnetdev.c:2043:9: error: no member named 'ifr_hwaddr' in 'struct ifreq' ifr.ifr_hwaddr.sa_family = AF_UNSPEC; ~~~ ^ util/virnetdev.c:2044:52: error: no member named 'ifr_hwaddr' in 'struct ifreq' virMacAddrGetRaw(macaddr, (unsigned char *)ifr.ifr_hwaddr.sa_data); ~~~ ^ 4 errors generated. Thanks, Conrad

Conrad Meyer wrote:
Hi all,
The recent commit with SHA1 cc0e8c244d080f56392278e836cc378ba848e7aa, "util: Functions to update host network device's multicast filter," breaks the build on FreeBSD, so please address this before 1.2.10 release.
Here is the output from Clang:
CC util/libvirt_util_la-virnetdev.lo util/virnetdev.c:1995:9: error: no member named 'ifr_hwaddr' in 'struct ifreq' ifr.ifr_hwaddr.sa_family = AF_UNSPEC; ~~~ ^ util/virnetdev.c:1996:52: error: no member named 'ifr_hwaddr' in 'struct ifreq' virMacAddrGetRaw(macaddr, (unsigned char *)ifr.ifr_hwaddr.sa_data); ~~~ ^ util/virnetdev.c:2043:9: error: no member named 'ifr_hwaddr' in 'struct ifreq' ifr.ifr_hwaddr.sa_family = AF_UNSPEC; ~~~ ^ util/virnetdev.c:2044:52: error: no member named 'ifr_hwaddr' in 'struct ifreq' virMacAddrGetRaw(macaddr, (unsigned char *)ifr.ifr_hwaddr.sa_data); ~~~ ^ 4 errors generated.
I have fixes for that, will send the patches shortly. Roman Bogorodskiy

On 10/29/2014 02:08 PM, Roman Bogorodskiy wrote:
Conrad Meyer wrote:
Hi all,
The recent commit with SHA1 cc0e8c244d080f56392278e836cc378ba848e7aa, "util: Functions to update host network device's multicast filter," breaks the build on FreeBSD, so please address this before 1.2.10 release.
Here is the output from Clang:
CC util/libvirt_util_la-virnetdev.lo util/virnetdev.c:1995:9: error: no member named 'ifr_hwaddr' in 'struct ifreq' ifr.ifr_hwaddr.sa_family = AF_UNSPEC; ~~~ ^ util/virnetdev.c:1996:52: error: no member named 'ifr_hwaddr' in 'struct ifreq' virMacAddrGetRaw(macaddr, (unsigned char *)ifr.ifr_hwaddr.sa_data); ~~~ ^ util/virnetdev.c:2043:9: error: no member named 'ifr_hwaddr' in 'struct ifreq' ifr.ifr_hwaddr.sa_family = AF_UNSPEC; ~~~ ^ util/virnetdev.c:2044:52: error: no member named 'ifr_hwaddr' in 'struct ifreq' virMacAddrGetRaw(macaddr, (unsigned char *)ifr.ifr_hwaddr.sa_data); ~~~ ^ 4 errors generated. I have fixes for that, will send the patches shortly.
Thank you! I was just going through all that trying to decide a useful way to resolve it. The new code in question uses similar #if logic to what was used for virNetDev(Get|Set)MAC(), but those functions (which also use ifr_hwaddr) use an ioctl that doesn't exist on FreeBSD, so it's easy. In these new cases, FreeBSD *does* have the ioctl in question, but apparently implement it in a different way, so something different is needed in the #if. ifr_hwaddr is a #define on Linux, but I don't know if that is always guaranteed (or if it could sometimes directly be a member of the ifreq struct).

Laine Stump wrote:
On 10/29/2014 02:08 PM, Roman Bogorodskiy wrote:
Conrad Meyer wrote:
Hi all,
The recent commit with SHA1 cc0e8c244d080f56392278e836cc378ba848e7aa, "util: Functions to update host network device's multicast filter," breaks the build on FreeBSD, so please address this before 1.2.10 release.
Here is the output from Clang:
CC util/libvirt_util_la-virnetdev.lo util/virnetdev.c:1995:9: error: no member named 'ifr_hwaddr' in 'struct ifreq' ifr.ifr_hwaddr.sa_family = AF_UNSPEC; ~~~ ^ util/virnetdev.c:1996:52: error: no member named 'ifr_hwaddr' in 'struct ifreq' virMacAddrGetRaw(macaddr, (unsigned char *)ifr.ifr_hwaddr.sa_data); ~~~ ^ util/virnetdev.c:2043:9: error: no member named 'ifr_hwaddr' in 'struct ifreq' ifr.ifr_hwaddr.sa_family = AF_UNSPEC; ~~~ ^ util/virnetdev.c:2044:52: error: no member named 'ifr_hwaddr' in 'struct ifreq' virMacAddrGetRaw(macaddr, (unsigned char *)ifr.ifr_hwaddr.sa_data); ~~~ ^ 4 errors generated. I have fixes for that, will send the patches shortly.
Thank you! I was just going through all that trying to decide a useful way to resolve it. The new code in question uses similar #if logic to what was used for virNetDev(Get|Set)MAC(), but those functions (which also use ifr_hwaddr) use an ioctl that doesn't exist on FreeBSD, so it's easy. In these new cases, FreeBSD *does* have the ioctl in question, but apparently implement it in a different way, so something different is needed in the #if. ifr_hwaddr is a #define on Linux, but I don't know if that is always guaranteed (or if it could sometimes directly be a member of the ifreq struct).
I have send the patches already and added an explicit check for that member. I'll take a look how to provide a fully functional implementation of the functions in subject when I have more time. Roman Bogorodskiy
participants (3)
-
Conrad Meyer
-
Laine Stump
-
Roman Bogorodskiy