I am running kernel 3.3.8 and trying to use batman adv ver 2017.4. I am getting error:
net/batman-adv/hard-interface.c:101:28: error: 'const struct rtnl_link_ops' has no member named 'get_link_net'
get_link_net is not part of rtnetlink.h in kernel v 3.3.8. Is 2017.4 not backwards compatible with older kernels per 4.0?
get_link_net isnt added until kernel 4.0-rc1.
I saw a previous message from 2016 saying: "Just to let everybody know: This patchset will break batman-adv compatibility for kernels older than 4.0 (see d37512a277dfb2cef8a578e25a3246f61399a55a):"
Msg: https://lists.open-mesh.org/pipermail/b.a.t.m.a.n/2016-January/014306.html
So was the backwards compatability broken intentionally so its no longer backwards compatible with older kernels?
What can i do?
On 19/12/17 04:55, jorge power wrote:
I am running kernel 3.3.8 and trying to use batman adv ver 2017.4. I am getting error:
net/batman-adv/hard-interface.c:101:28: error: 'const struct rtnl_link_ops' has no member named 'get_link_net'
get_link_net is not part of rtnetlink.h in kernel v 3.3.8. Is 2017.4 not backwards compatible with older kernels per 4.0?
It's there in compat.h:
134 #if LINUX_VERSION_CODE < KERNEL_VERSION(4, 0, 0) 135 136 /* wild hack for batadv_getlink_net only */ 137 #define get_link_net get_xstats_size || 1 ? fallback_net : (struct net*)netdev->rtnl_link_ops->get_xst ats_size 138 139 #endif /* < KERNEL_VERSION(4, 0, 0) */
not sure why it does not work for you.
get_link_net isnt added until kernel 4.0-rc1.
I saw a previous message from 2016 saying: "Just to let everybody know: This patchset will break batman-adv compatibility for kernels older than 4.0 (see d37512a277dfb2cef8a578e25a3246f61399a55a):"
Msg: https://lists.open-mesh.org/pipermail/b.a.t.m.a.n/2016-January/014306.html
So was the backwards compatability broken intentionally so its no longer backwards compatible with older kernels?
What can i do?
On Montag, 18. Dezember 2017 15:55:48 CET jorge power wrote:
I am running kernel 3.3.8 and trying to use batman adv ver 2017.4. I am getting error:
net/batman-adv/hard-interface.c:101:28: error: 'const struct rtnl_link_ops' has no member named 'get_link_net'
[...]
So was the backwards compatability broken intentionally so its no longer backwards compatible with older kernels?
What can i do?
Stop trying to do your own stuff and use the full compat layer from batman-adv or LEDE (mac80211 + small batman-adv compat layer). We will not integrate any compat stuff in net/batman-adv/ because this is the part which is part of the official kernel [1]. So if you don't want to use the compat stuff then please don't complain about having build errors.
And in case somebody wonders: Yes, he acknowledged on IRC that he is not using the compat stuff from batman-adv to build against OpenWrt (without the OpenWrt package!!!!).
Kind regards, Sven
[1] the official kernel doesn't require compat and doesn't want it https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/scri...
b.a.t.m.a.n@lists.open-mesh.org