On Tue, Aug 28, 2012 at 4:19 AM, Peter Krempa <pkrempa(a)redhat.com> wrote:
On 08/27/12 23:09, Eric Blake wrote:
> On 08/24/2012 10:19 AM, Eric Blake wrote:
>
>> Ah, that rings a bell, I knew I'd seen this issue before. I'm actually
>> surprised it STILL hasn't been fixed in Ubuntu, and maybe it's time to
>> apply the workaround below as a build-breaker fix (I think I've posted
>> it on list before, but never committed it).
>>
>
>>
>> diff --git i/src/util/virnetlink.h w/src/util/virnetlink.h
>> index 1982dae..82154de 100644
>> --- i/src/util/virnetlink.h
>> +++ w/src/util/virnetlink.h
>> @@ -26,7 +26,11 @@
>>
>> # if defined(__linux__) && defined(HAVE_LIBNL)
>>
>> +/* Work around a bug where older libnl-1 headers expected older gcc
>> + * semantics of 'extern inline' that conflict with C99 semantics. */
>> +# define inline
>> # include <netlink/msg.h>
>> +# undef inline
>
> I've now pushed this under the build-breaker rule.
>
This breaks the build with libnl3:
CC libvirt_util_la-virnetdevbridge.lo
cc1: warnings being treated as errors
/usr/include/libnl3/netlink/list.h:21:20: error: 'NL_INIT_LIST_HEAD' defined but
not used [-Wunused-function]
/usr/include/libnl3/netlink/list.h:37:20: error: 'nl_list_add_tail' defined but
not used [-Wunused-function]
/usr/include/libnl3/netlink/list.h:43:20: error: 'nl_list_add_head' defined but
not used [-Wunused-function]
/usr/include/libnl3/netlink/list.h:49:20: error: 'nl_list_del' defined but not
used [-Wunused-function]
/usr/include/libnl3/netlink/list.h:55:19: error: 'nl_list_empty' defined but not
used [-Wunused-function]
/usr/include/libnl3/netlink/object.h:60:23: error: 'nl_object_priv' defined but
not used [-Wunused-function]
cc1: error: unrecognized command line option "-Wno-suggest-attribute=const"
cc1: error: unrecognized command line option "-Wno-suggest-attribute=pure"
make[3]: *** [libvirt_util_la-virnetdev.lo] Error 1
That annoying libnl-1 bug exists also in other distros that for some reason
refuse to fix it (e.g. gentoo) but upgrading to libnl3 helps and libvirt
compiles cleanly.
Libnl3 unfortunately has some inline functions in the header files where
removing the inline keyword is catastrophic. I vote for reverting this patch
and have distros apply that long-known trivial patch that fixes libnl-1 headers
rather than breaking libnl3 support.
Peter
Erm. Gentoo doesn't have the issue. I mentioned that Gentoo has the
same fix that Fedora had which was the commit from upstream applied.
The broken distro was Ubuntu 10.04, which I believe is a LTS release.
The other mention of Gentoo I made was that we put libnl3 headers in
the same path that Fedora does to support parallel installs of libnl1
and libnl3.
--
Doug Goldstein