Now that 2.6.9 is final. Here is an update of the iproute2 utilities that contains all the patches in my queue. * lnstat to replace rtstat and ctstat (from Harald Welte) * latest xfrm related changes * several small typo''s and build fixes for older systems http://developer.osdl.org/dev/iproute2/download/iproute2-2.6.9-041019.tar.gz _______________________________________________ LARTC mailing list / LARTC@mailman.ds9a.nl http://mailman.ds9a.nl/mailman/listinfo/lartc HOWTO: http://lartc.org/
On Tue, 19 Oct 2004, Stephen Hemminger wrote:> Now that 2.6.9 is final. Here is an update of the iproute2 utilities thatcan''t compile Got the following error. Linux is 2.6.9. Gcc is 2.95.3. make[1]: Entering directory `/usr/src/net/iproute2-2.6.9/misc'' gcc -D_GNU_SOURCE -O2 -Wstrict-prototypes -Wall -g -I../include -DRESOLVE_HOSTNAMES -c -o ss.o ss.c In file included from /usr/include/asm/byteorder.h:57, from ss.c:36: /usr/include/linux/byteorder/little_endian.h:43: parse error before `__cpu_to_le64p'' /usr/include/linux/byteorder/little_endian.h: In function `__cpu_to_le64p'': /usr/include/linux/byteorder/little_endian.h:45: `__le64'' undeclared (first use in this function) /usr/include/linux/byteorder/little_endian.h:45: (Each undeclared identifier is reported only once ... a lot of these errors. These errors went away if linux-2.4.28pre4 is used to compile. Thanks, Jeff.
On Wed, Oct 20, 2004 at 08:21:10AM +0800, Jeff Chua wrote:> > On Tue, 19 Oct 2004, Stephen Hemminger wrote: > > >Now that 2.6.9 is final. Here is an update of the iproute2 utilities that > > > can''t compile Got the following error. Linux is 2.6.9. Gcc is 2.95.3.I''ll take care of this. sorry fort he inconvenience.> Thanks, > Jeff.-- - Harald Welte <laforge@gnumonks.org> http://www.gnumonks.org/ ===========================================================================Programming is like sex: One mistake and you have to support it your lifetime
Harald Welte
2004-Oct-20 09:41 UTC
iproute2 and 2.6.9 kernel headers (was Re: [ANNOUNCE] iproute2 2.6.9-041019)
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@gnumonks.org> http://www.gnumonks.org/ ===========================================================================Programming is like sex: One mistake and you have to support it your lifetime
David Woodhouse
2004-Oct-20 10:41 UTC
Re: iproute2 and 2.6.9 kernel headers (was Re: [ANNOUNCE] iproute2 2.6.9-041019)
On Wed, 2004-10-20 at 11:41 +0200, Harald Welte wrote:> 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:No, it wouldn''t. The time has come to fix it properly instead. Anything which these tools actually need from the kernel headers should be moved into a separate header file (still in the kernel source) which is usable from _both_ kernel and userspace. It should use standard types (like uint16_t etc) instead of kernel-private types, and shouldn''t have any #if{n,}def __KERNEL__ in it. Ideally, it would be in a different directory too -- but we can worry about that later. -- dwmw2
David Vrabel
2004-Oct-20 11:52 UTC
Re: iproute2 and 2.6.9 kernel headers (was Re: [ANNOUNCE] iproute2 2.6.9-041019)
David Woodhouse wrote:> > The time has come to fix it properly instead. Anything which these tools > actually need from the kernel headers should be moved into a separate > header file (still in the kernel source) which is usable from _both_ > kernel and userspace.Isn''t this what linux-libc-headers is for?> It should use standard types (like uint16_t etc)Why doesn''t the kernel use these standard types also? David Vrabel -- David Vrabel, Design Engineer Arcom, Clifton Road Tel: +44 (0)1223 411200 ext. 3233 Cambridge CB1 7EA, UK Web: http://www.arcom.com/
David Woodhouse
2004-Oct-20 12:19 UTC
Re: iproute2 and 2.6.9 kernel headers (was Re: [ANNOUNCE] iproute2 2.6.9-041019)
On Wed, 2004-10-20 at 12:52 +0100, David Vrabel wrote:> David Woodhouse wrote: > > > > The time has come to fix it properly instead. Anything which these tools > > actually need from the kernel headers should be moved into a separate > > header file (still in the kernel source) which is usable from _both_ > > kernel and userspace. > > Isn''t this what linux-libc-headers is for?The separate linux-libc-headers is a hack, which will be able to die once we properly clean up the kernel headers into those which are ''exported'' and those which are private.> > It should use standard types (like uint16_t etc) > > Why doesn''t the kernel use these standard types also?Archaic personal preference. Inside the kernel that''s fair enough. -- dwmw2 - To unsubscribe from this list: send the line "unsubscribe linux-net" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Try this, ss was dragging in byteorder.h and it didn''t need to. diff -Nru a/misc/ss.c b/misc/ss.c --- a/misc/ss.c 2004-10-20 09:13:56 -07:00 +++ b/misc/ss.c 2004-10-20 09:13:56 -07:00 @@ -33,7 +33,6 @@ #include "libnetlink.h" #include "SNAPSHOT.h" -#include <asm/byteorder.h> #include <linux/tcp.h> #include <linux/tcp_diag.h> _______________________________________________ LARTC mailing list / LARTC@mailman.ds9a.nl http://mailman.ds9a.nl/mailman/listinfo/lartc HOWTO: http://lartc.org/
Similar problem to ss in iptunnel. It was including asm/byteorder.h a kernel header that it didn''t need to. diff -Nru a/ip/iptunnel.c b/ip/iptunnel.c --- a/ip/iptunnel.c 2004-10-20 09:18:36 -07:00 +++ b/ip/iptunnel.c 2004-10-20 09:18:36 -07:00 @@ -26,7 +26,6 @@ #include <netinet/in.h> #include <arpa/inet.h> #include <sys/ioctl.h> -#include <asm/byteorder.h> #include <linux/if.h> #include <linux/if_arp.h> #include <linux/ip.h>
On Wed, 20 Oct 2004, Stephen Hemminger wrote:> Try this, ss was dragging in byteorder.h and it didn''t need to. > > diff -Nru a/misc/ss.c b/misc/ss.c > --- a/misc/ss.c 2004-10-20 09:13:56 -07:00 > +++ b/misc/ss.c 2004-10-20 09:13:56 -07:00 > @@ -33,7 +33,6 @@ > #include "libnetlink.h" > #include "SNAPSHOT.h" > > -#include <asm/byteorder.h> > #include <linux/tcp.h> > #include <linux/tcp_diag.h>same problem. "#include <linux/tcp.h>" is dragging in "#include <asm/byteorder.h>". Same thing goes for <linux/ip.h>. All these kernel headers need cleanup, and I don''t know enough to fix it. Jeff.