Re: 2.6.28 headers break kbd and net-tools userspace builds

From: Sam Ravnborg
Date: Thu Jan 22 2009 - 14:11:19 EST


[restored lkml]

On Thu, Jan 22, 2009 at 07:03:29PM +0000, Andrew Walrond wrote:
> Sam Ravnborg wrote:
> >
> >I checked the include guards and they are correct.
> >
> >Could you please investige where it picks up the first definition
> >of struct iphdr.
> >
> >
> Here you go:
>
> $ make iptunnel.o
>
> cc -D_GNU_SOURCE -O2 -Wall -g -I. -idirafter ./include/ -Ilib -c -o
> iptunnel.o iptunnel.c
> In file included from /usr/include/linux/if_tunnel.h:5,
> from iptunnel.c:39:
> /usr/include/linux/ip.h:85: error: redefinition of 'struct iphdr'
>
> $ grep -r iphdr /usr/include/
>
> /usr/include/netinet/ip.h:struct iphdr
> /usr/include/netinet/tcp.h: * This should be defined as MIN(512, IP_MSS
> - sizeof (struct tcpiphdr)).
> /usr/include/linux/if_tunnel.h: struct iphdr iph;
> /usr/include/linux/ip.h:struct iphdr {
>
> $ grep netinet/ip.h iptunnel.c
>
> #include <netinet/ip.h>
>
> So linux/ip.h is clashing with glibc(2.8)'s netinet/ip.h

I took a look at my netinet/ip.h and this is obviously
the same structure.
But I do not know what the right answer is here.

Added netdev..

This may be a general thing. Because iphdr is
no a kernel thing, it is an IP thing. So one could argue
that the kernel should not export it in the first place.

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/