Re: include/linux/netfilter.h after make headers_install is incomplete

From: Patrick McHardy
Date: Wed May 21 2008 - 06:32:17 EST


Sam Ravnborg wrote:
On Wed, May 21, 2008 at 11:56:55AM +0200, Patrick McHardy wrote:
David Miller wrote:
From: "Greg Steuck" <greg@xxxxxxx>
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.
These types are used by countless header files. I don't know
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.


I didn't notice the ifdef around the include statement, this makes
sense of course.

I'll fix it up, thanks Sam.
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/