2004-10-19 21:30:58

by Stephen Hemminger

[permalink] [raw]
Subject: [ANNOUNCE] iproute2 2.6.9-041019

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


2004-10-20 00:58:49

by Jeff Chua

[permalink] [raw]
Subject: Re: [ANNOUNCE] iproute2 2.6.9-041019


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.


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.

2004-10-20 07:11:00

by Harald Welte

[permalink] [raw]
Subject: Re: [ANNOUNCE] iproute2 2.6.9-041019

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 <[email protected]> http://www.gnumonks.org/
============================================================================
Programming is like sex: One mistake and you have to support it your lifetime


Attachments:
(No filename) (578.00 B)
signature.asc (189.00 B)
Digital signature
Download all attachments

2004-10-20 09:49:24

by Harald Welte

[permalink] [raw]
Subject: 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 <[email protected]> http://www.gnumonks.org/
============================================================================
Programming is like sex: One mistake and you have to support it your lifetime


Attachments:
(No filename) (2.59 kB)
signature.asc (189.00 B)
Digital signature
Download all attachments

2004-10-20 10:53:24

by David Woodhouse

[permalink] [raw]
Subject: 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


2004-10-20 11:57:25

by David Vrabel

[permalink] [raw]
Subject: 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/

2004-10-20 12:22:22

by David Woodhouse

[permalink] [raw]
Subject: 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


2004-10-20 16:21:04

by Stephen Hemminger

[permalink] [raw]
Subject: Re: [ANNOUNCE] iproute2 2.6.9-041019

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>

2004-10-21 03:04:03

by Jeff Chua

[permalink] [raw]
Subject: Re: [ANNOUNCE] iproute2 2.6.9-041019


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.

2004-10-21 12:32:31

by Stephen Hemminger

[permalink] [raw]
Subject: Re: [ANNOUNCE] iproute2 2.6.9-041019

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>