public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
* Fwd: include/linux/netfilter.h after make headers_install is incomplete
       [not found] ` <a27c0c970805201139i38e12d15ue807fc0239b1c10e@mail.gmail.com>
@ 2008-05-20 18:44   ` Greg Steuck
  2008-05-20 21:21     ` David Miller
  0 siblings, 1 reply; 5+ messages in thread
From: Greg Steuck @ 2008-05-20 18:44 UTC (permalink / raw)
  To: linux-kernel

Hello,

I asked this on netfilter list, but it doesn't seem to be generating any
interest there. Maybe the question belongs on this list?

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.

Is kernel the right place then?

Thanks
Greg
--
nest.cx is Gmail hosted, use PGP for anything private. Key:
http://tinyurl.com/ho8qg
Fingerprint: 5E2B 2D0E 1E03 2046 BEC3  4D50 0B15 42BD 8DF5 A1B0

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: include/linux/netfilter.h after make headers_install is incomplete
  2008-05-20 18:44   ` Fwd: include/linux/netfilter.h after make headers_install is incomplete Greg Steuck
@ 2008-05-20 21:21     ` David Miller
  2008-05-21  9:56       ` Patrick McHardy
  0 siblings, 1 reply; 5+ messages in thread
From: David Miller @ 2008-05-20 21:21 UTC (permalink / raw)
  To: greg; +Cc: linux-kernel, netfilter-devel

From: "Greg Steuck" <greg@nest.cx>
Date: Tue, 20 May 2008 11:44:56 -0700

> I asked this on netfilter list, but it doesn't seem to be generating any
> interest there. Maybe the question belongs on this list?

No, it does not.  netfilter-devel@vger.kernel.org is the correct place
to discuss this, added to CC:.

Perhaps you sent this to plain "netfilter@vger.kernel.org" or the
older lists which are no longer in use.

> 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.
> 
> Is kernel the right place then?
> 
> Thanks
> Greg
> --
> nest.cx is Gmail hosted, use PGP for anything private. Key:
> http://tinyurl.com/ho8qg
> Fingerprint: 5E2B 2D0E 1E03 2046 BEC3  4D50 0B15 42BD 8DF5 A1B0
> --
> To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html
> Please read the FAQ at  http://www.tux.org/lkml/

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: include/linux/netfilter.h after make headers_install is incomplete
  2008-05-20 21:21     ` David Miller
@ 2008-05-21  9:56       ` Patrick McHardy
  2008-05-21 10:04         ` Sam Ravnborg
  0 siblings, 1 reply; 5+ messages in thread
From: Patrick McHardy @ 2008-05-21  9:56 UTC (permalink / raw)
  To: David Miller; +Cc: greg, linux-kernel, netfilter-devel, Sam Ravnborg

David Miller wrote:
> From: "Greg Steuck" <greg@nest.cx>
> 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).


^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: include/linux/netfilter.h after make headers_install is incomplete
  2008-05-21  9:56       ` Patrick McHardy
@ 2008-05-21 10:04         ` Sam Ravnborg
  2008-05-21 10:31           ` Patrick McHardy
  0 siblings, 1 reply; 5+ messages in thread
From: Sam Ravnborg @ 2008-05-21 10:04 UTC (permalink / raw)
  To: Patrick McHardy; +Cc: David Miller, greg, linux-kernel, netfilter-devel

On Wed, May 21, 2008 at 11:56:55AM +0200, Patrick McHardy wrote:
> David Miller wrote:
> >From: "Greg Steuck" <greg@nest.cx>
> >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.

>From netfilter.h:
#ifdef __KERNEL__
#include <linux/init.h>
#include <linux/types.h>
#include <linux/skbuff.h>
#include <linux/net.h>
#include <linux/netdevice.h>
#include <linux/if.h>
#include <linux/in.h>
#include <linux/in6.h>
#include <linux/wait.h>
#include <linux/list.h>
#include <net/net_namespace.h>
#endif

Include of types.h should be outside the #ifdef block.

	Sam

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: include/linux/netfilter.h after make headers_install is incomplete
  2008-05-21 10:04         ` Sam Ravnborg
@ 2008-05-21 10:31           ` Patrick McHardy
  0 siblings, 0 replies; 5+ messages in thread
From: Patrick McHardy @ 2008-05-21 10:31 UTC (permalink / raw)
  To: Sam Ravnborg; +Cc: David Miller, greg, linux-kernel, netfilter-devel

Sam Ravnborg wrote:
> On Wed, May 21, 2008 at 11:56:55AM +0200, Patrick McHardy wrote:
>> David Miller wrote:
>>> From: "Greg Steuck" <greg@nest.cx>
>>> 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.

^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2008-05-21 10:31 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
     [not found] <a27c0c970805161521k332fba8cg808d52396b5cdce5@mail.gmail.com>
     [not found] ` <a27c0c970805201139i38e12d15ue807fc0239b1c10e@mail.gmail.com>
2008-05-20 18:44   ` Fwd: include/linux/netfilter.h after make headers_install is incomplete Greg Steuck
2008-05-20 21:21     ` David Miller
2008-05-21  9:56       ` Patrick McHardy
2008-05-21 10:04         ` Sam Ravnborg
2008-05-21 10:31           ` Patrick McHardy

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox