[PATCH 00/12] Fix net header dependencies

Ben Hutchings
2011-08-08T13:15:11Z

[-- Attachment #1.1: Type: text/plain, Size: 3405 bytes --]

Various networking headers depend on definitions from others which they
don't include. We can't fix all of these, because some definitions are
duplicated between kernel headers and glibc headers and we cannot tell
which is the right one to include. We also have to be wary of
introducing a dependency cycle.

The attached test program tests whether various header inclusion
sequences work, in the sense that compilation is successful. I used gcc
4.6.1, eglibc 2.13, and kernel headers from Linux 3.0 initially This
resulted in 120 failures. After the following changes, there are 65
failures and no regressions.

Ben.

Ben Hutchings (12):
headers, pppox: Add missing #include to <linux/if_pppox.h>
headers, ax25: Add missing #include to <linux/netrom.h>,
<linux/rose.h>
headers, pppol2tp: Use __kernel_pid_t in <linux/pppol2tp.h>
headers, net: Use __kernel_sa_family_t in more definitions shared
with userland
headers, net: Define struct __kernel_sockaddr, replacing struct
sockaddr
headers, netfilter: Use kernel type names __u8, __u16, __u32
headers, tipc: Add missing #include to <linux/tipc_config.h> for
userland
headers, netfilter: Add missing #include <limits.h> for userland
headers, xtables: Add missing #include <linux/netfilter.h>
headers, can: Add missing #include to <linux/can/bcm.h>
headers, scc: Add missing #include to <linux/scc.h>
headers, ppp: Add missing #include to <linux/if_ppp.h>

include/linux/atalk.h | 3 ++-
include/linux/ax25.h | 2 +-
include/linux/caif/caif_socket.h | 7 +------
include/linux/can.h | 2 +-
include/linux/can/bcm.h | 1 +
include/linux/if.h | 12 ++++++------
include/linux/if_ppp.h | 1 +
include/linux/if_pppol2tp.h | 2 +-
include/linux/if_pppox.h | 9 +++++----
include/linux/in.h | 2 +-
include/linux/ipx.h | 2 +-
include/linux/irda.h | 9 +++------
include/linux/l2tp.h | 7 ++++---
include/linux/llc.h | 10 +++++++---
include/linux/netfilter/xt_connlimit.h | 1 +
include/linux/netfilter/xt_conntrack.h | 1 +
include/linux/netfilter/xt_iprange.h | 1 +
include/linux/netfilter_arp/arp_tables.h | 14 +++++++-------
include/linux/netfilter_decnet.h | 3 +++
include/linux/netfilter_ipv4.h | 3 +++
include/linux/netfilter_ipv4/ip_tables.h | 20 ++++++++++----------
include/linux/netfilter_ipv6.h | 3 +++
include/linux/netfilter_ipv6/ip6_tables.h | 22 +++++++++++-----------
include/linux/netlink.h | 2 +-
include/linux/netrom.h | 2 ++
include/linux/phonet.h | 6 ++++--
include/linux/rose.h | 7 +++++--
include/linux/scc.h | 1 +
include/linux/socket.h | 17 +++++++++--------
include/linux/tipc_config.h | 4 ++++
include/linux/un.h | 4 +++-
include/linux/x25.h | 3 ++-
32 files changed, 106 insertions(+), 77 deletions(-)

--
1.7.5.4

[-- Attachment #1.2: net-header-test.sh --]
[-- Type: application/x-shellscript, Size: 3390 bytes --]

[-- Attachment #2: This is a digitally signed message part --]
[-- Type: application/pgp-signature, Size: 828 bytes --]