[ovs-dev] [PATCH] datapath: Tolerate backporting of rtnl_link_stats64 (as done on RHEL 6).
jesse at nicira.com
Fri Feb 4 19:47:55 UTC 2011
On Fri, Feb 4, 2011 at 9:45 AM, Ben Pfaff <blp at nicira.com> wrote:
> On Thu, Feb 03, 2011 at 05:42:59PM -0800, Jesse Gross wrote:
>> On Thu, Feb 3, 2011 at 4:04 PM, Ben Pfaff <blp at nicira.com> wrote:
>> > Red Hat Enterprise Linux 6 has a 2.6.32 kernel but it backports the
>> > rtnl_link_stats64 structure that was introduced in 2.6.35, so we need to
>> > check whether it was defined instead of just guessing based on the kernel
>> > version number.
>> > Build-tested only, on 2.6.32-71.14.1.el6 (RHEL 6),
>> > linux-2.6.18-128.1.6.el5.xs22.214.171.1246.101 (XenServer 5.5.0),
>> > 2.6.18-128.1.6.el5.xs126.96.36.1995.1024xen (XenServer 5.5.0 update 1),
>> > and upstream 2.6.18, 2.6.26, 2.6.29, 2.6.33, 2.6.34, 2.6.36, all for i386,
>> > plus 2.6.36 for x86-64.
>> > My machine's userspace headers have <linux/if_link.h> but not
>> > rtnl_link_stats64. ?I didn't test with other userspace headers.
>> The problem that I ran into (and with this as well) is that the
>> userspace header check never finds rtnl_link_stats64 even if it
>> exists. So on my machine, which has 2.6.35 userspace and kernel, I
> When I edited my /usr/include/linux/if_link.h by hand to include
> rtnl_link_stats64, everything built fine. So something else must be in
> play here. What's in config.log regarding rtnl_link_stats64?
> What distro is on your machine?
It's Ubuntu 10.10 but I found the problem: if_link.h includes
netlink.h which uses sa_family_t which is defined in linux/socket.h
but only in the kernel. If I add sys/socket.h to the include list in
the macro everything works fine.
More information about the dev