[yocto] iptables not building on master

Cui, Dexuan dexuan.cui at intel.com
Tue Mar 6 01:47:54 PST 2012


Robert Yang wrote on 2012-03-06:
> Hi Tom,
> Thanks for the update, the root cause is that iptables offers a kernel
> header file include/linux/types.h, but it mis-matches the kernel in
> the sysroot, we can add this:
> #define __aligned_u64 __u64 __attribute__((aligned(8)))
> to:
> iptables-1.4.12.2/include/linux/types.h
> to fix this problem.
> 
> Another solution is that as Dexuan suggested we change the order of
> the include header files, but I'm afraid that may cause other
> problems, since I think that the pkg's own header file should have a
> higher priority than the system's, so I think that the current order is correct.
My understanding is:
Recently the preferred linux-libc-headers was upgraded to linux-libc-headers-yocto-3.2, that introduced a new struct tpacket_hdr_v1 in linux/if_packet.h and the new struct uses __aligned_u64 but __aligned_u64 is not defined in iptables's own linux/types.h
Currently in iptables's makefile, its own linux/types.h comes first than that one in our sysroot in the header file search order, and I noticed iptables doesn't have a file linux/if_packet.h. So, with our sysroot's linux/if_package.h and iptables's own linux/types, we get the failure.

If we define __aligned_u64 _ in iptables's own linux/types.h, we're still using our sysroot's linux/if_packet.h with iptables's linux/types.h -- I think this is not correct even if the build can pass?  I think we should use header files consistently.


Thanks,
-- Dexuan




More information about the yocto mailing list