Subject: Re: [PATCH net-2.6] Revert "net: Support inclusion of <linux/socket.h> before <sys/socket.h>"

From: Ben Hutchings <[email-masked]>
Date: Thu, 12 Nov 2009 03:38:55 +0000

On Wed, 2009-11-11 at 19:09 -0800, David Miller wrote:
> From: Ben Hutchings <[email-masked]>
> Date: Thu, 12 Nov 2009 03:05:15 +0000
> 
> > <linux/netlink.h> will not compile for userland, because
> > <linux/socket.h> is no longer defining sa_family_t.  For userland, this
> > should be defined by <sys/socket.h>.
> 
> Still, you still essentially have two choices:
> 
> 1) Tell userland, sorry you need to include sys/socket.h before
>    other "socket stuff" and that means linux/netlink.h in
>    particular

Which is just nasty; headers should include everything they need.

> 2) Put a !__KERNEL__ sys/socket.h include in there, but that's
>    asking for trouble.

Indeed.

Including <bits/sockaddr.h> would get us exactly what we need, but
that's not meant to be included directly.

Ulrich, can you make any suggestions as to how we can resolve this?

Ben.

-- 
Ben Hutchings
Lowery's Law:
             If it jams, force it. If it breaks, it needed replacing anyway.