iproute2 and 2.6.9 kernel headers (was Re: [ANNOUNCE] iproute2 2.6.9-041019)

From: Harald Welte
Date: Wed Oct 20 2004 - 04:56:56 EST


On Wed, Oct 20, 2004 at 09:00:17AM +0200, Harald Welte wrote:
> I'll take care of this. sorry fort he inconvenience.

I should actually read mails befor replying ;) I thought the bug was in
lnstat - but apparently it wasn't.

The include bug seems non-trivial to fix. (how do I hate kernel include
from userspace issues):

apparently __KERNEL_STRICT_NAMES is definde somewhere (glibc?) which
prevents __le16, __le64 and others from being defined in linux/types.h.

Just reietting it like this doesn't help much:


diff -Nru iproute2-2.6.9-041019/ip/iptunnel.c iproute2-2.6.9-laf/ip/iptunnel.c
--- iproute2-2.6.9-041019/ip/iptunnel.c 2004-10-19 22:49:02.000000000 +0200
+++ iproute2-2.6.9-laf/ip/iptunnel.c 2004-10-20 11:26:24.489444052 +0200
@@ -26,6 +26,7 @@
#include <netinet/in.h>
#include <arpa/inet.h>
#include <sys/ioctl.h>
+#undef __KERNEL_STRICT_NAMES
#include <asm/byteorder.h>
#include <linux/if.h>
#include <linux/if_arp.h>

Since now we have conflicting definitions

gcc -D_GNU_SOURCE -O2 -Wstrict-prototypes -Wall -g -I../include -DRESOLVE_HOSTNAMES -c -o iptunnel.o iptunnel.c
In file included from /usr/include/linux/byteorder/big_endian.h:11,
from /usr/include/asm/byteorder.h:74,
from iptunnel.c:30:
/usr/include/linux/types.h:20: error: conflicting types for `fd_set'
/usr/include/sys/select.h:78: error: previous declaration of `fd_set'
/usr/include/linux/types.h:21: error: conflicting types for `dev_t'
/usr/include/sys/types.h:62: error: previous declaration of `dev_t'
/usr/include/linux/types.h:24: error: conflicting types for `nlink_t'
/usr/include/sys/types.h:77: error: previous declaration of `nlink_t'

I'm done with this, maybe somebody with more clue about kernel include
magic will take on from this.

Additional issue: the iproute2 makefile didn't stop the build process
in the event of an error. Stephen, plase consider this patch to fix
it:

diff -Nru iproute2-2.6.9-041019/Makefile iproute2-2.6.9-laf/Makefile
--- iproute2-2.6.9-041019/Makefile 2004-10-19 22:49:02.000000000 +0200
+++ iproute2-2.6.9-laf/Makefile 2004-10-20 11:33:33.223545024 +0200
@@ -29,10 +29,12 @@

LIBNETLINK=../lib/libnetlink.a ../lib/libutil.a

-all: Config
- @for i in $(SUBDIRS); \
- do $(MAKE) $(MFLAGS) -C $$i; done
+all: Config $(SUBDIRS)

+.PHONY: $(SUBDIRS)
+$(SUBDIRS):
+ $(MAKE) $(MFLAGS) -C $@;
+
Config:
./configure $(KERNEL_INCLUDE)

--
- Harald Welte <laforge@xxxxxxxxxxxx> http://www.gnumonks.org/
============================================================================
Programming is like sex: One mistake and you have to support it your lifetime

Attachment: signature.asc
Description: Digital signature