Hi,
I think I know what's going on here. :-)
On 05/22/2016 01:55 AM, Clemens Gruber wrote:
> Hi,
>
> I need some features from the new iproute2 4.6, but there seem to be
> some kernel header vs glibc header incompatibilities occuring when
> building the new iproute2 4.6 for ptxdist.
>
> Two examples of the numerous build errors on ptxdist 2016.04.0, a
> toolchain with glibc 2.22 and kernel + kernel-headers version 4.6.
>
> In file included from m_ipt.c:17:0:
> ../include/linux/if.h:106:19: error: redeclaration of enumerator 'IFF_UP'
> #define IFF_UP IFF_UP
> ^
> ../include/linux/if.h:79:2: note: previous definition of 'IFF_UP' was here
> IFF_UP = 1<<0, /* sysfs */
> ^~~~~~
>
> In file included from ../include/xtables.h:16:0,
> from ../include/iptables.h:5,
> from m_ipt.c:18:
> TOOLCHAIN/sysroot-arm-v7a-linux-gnueabihf/usr/include/net/if.h:111:8: error:
> redefinition of 'struct ifmap'
here, you already replaced the TOOLCHAIN path and it uses the
kernel-headers from toolchain, not ptxdist.
> struct ifmap
> ^~~~~
> In file included from m_ipt.c:17:0:
> ../include/linux/if.h:189:8: note: originally defined here
I suppose it's a relative include from your TOOLCHAIN kernel-headers.
The solution would be that you need to tell the iproute2 buildsystem
where the kernel-headers are which you want to use.
E.g. (running fast grep on ptxdist dir)
rules/bridge-utils.make: --with-linux-headers=$(KERNEL_HEADERS_DIR)
which can be checked by:
ptxdist print KERNEL_HEADERS_DIR
in your BSP and this directory should be use to search kernel headers.
> struct ifmap {
> ^~~~~
>
> There is a commit in version 4.6 of iproute2, which should already have fixed
> these build errors:
> http://git.kernel.org/cgit/linux/kernel/git/shemminger/iproute2.git/commit/?id=8a781d7e2580e14f097b23a7c4731bafc800a824
>
That's a fallback and it seems that iproute2 prefers the toolchain one.
- Alex
_______________________________________________
ptxdist mailing list
[email protected]