On Wed, May 21, 2008 at 11:56:55AM +0200, Patrick McHardy wrote:David Miller wrote:From: "Greg Steuck" <greg@xxxxxxx>These types are used by countless header files. I don't know
Date: Tue, 20 May 2008 11:44:56 -0700
I ran make headers_install in 2.6.25 tree and the installed netfilter.h is
not complete. Namely, it declares
union nf_inet_addr {
__u32 all[4];
__be32 ip;
__be32 ip6[4];
...
}
The __u32, __be32 types are declared in <linux/types.h> and the #include
directive is removed by the installation process. This in turn makes some
applications unbuildable against such an exported tree, e.g.
busybox-1.10.1/networking/tcpudp.c:#include <linux/netfilter_ipv4.h>
If I correctly understand the purpose of make headers_install, it is
supposed to generate an API for applications. I could certainly
make tcpudp.c include linux/types.h, but given that the application
does not even use nf_inet_addr, this would be the wrong place for
the fix.
why types.h is stripped, I guess this question can be best
answered by whoever maintains the header-install stuff (Sam?
I don't know).
Everything inside
#ifdef __KERNEL__
...
#endif
are stripped.