2002-10-09 18:58:48

by Nicolás Lichtmaier

[permalink] [raw]
Subject: 2.5.41 does not build: ipv6/addrconf.c: case label (htonln(something)) does not reduce to an integer constant

gcc -Wp,-MD,net/ipv6/.addrconf.o.d -D__KERNEL__ -Iinclude -Wall
-Wstrict-prototypes -Wno-trigraphs -O2 -fomit-frame-pointer
-fno-strict-aliasing -fno-common -pipe -mpreferred-stack-boundary=2
-march=i686 -Iarch/i386/mach-generic -nostdinc -iwithprefix include
-DMODULE -DKBUILD_BASENAME=addrconf -c -o net/ipv6/addrconf.o
net/ipv6/addrconf.c
net/ipv6/addrconf.c: In function `ipv6_addr_type':
net/ipv6/addrconf.c:155: case label does not reduce to an integer constant
net/ipv6/addrconf.c:159: case label does not reduce to an integer constant
net/ipv6/addrconf.c:163: case label does not reduce to an integer constant
net/ipv6/addrconf.c:156: warning: unreachable code at beginning of
switch statement
make[3]: *** [net/ipv6/addrconf.o] Error 1
make[2]: *** [net/ipv6] Error 2
make[1]: *** [net] Error 2
make[1]: Leaving directory `/home/nick/soft/linux-2.5.41'
make: *** [stamp-build] Error 2

In that line:
switch((st & htonl(0x00FF0000))) {
case htonl(0x00010000):

Perhaps it's a matter of includes again.

Thanks!


2002-10-09 19:02:29

by Alan

[permalink] [raw]
Subject: Re: 2.5.41 does not build: ipv6/addrconf.c: case label (htonln(something)) does not reduce to an integer constant

On Wed, 2002-10-09 at 20:04, Nicol?s Lichtmaier wrote:
> gcc -Wp,-MD,net/ipv6/.addrconf.o.d -D__KERNEL__ -Iinclude -Wall
> -Wstrict-prototypes -Wno-trigraphs -O2 -fomit-frame-pointer
> -fno-strict-aliasing -fno-common -pipe -mpreferred-stack-boundary=2
> -march=i686 -Iarch/i386/mach-generic -nostdinc -iwithprefix include
> -DMODULE -DKBUILD_BASENAME=addrconf -c -o net/ipv6/addrconf.o
> net/ipv6/addrconf.c
> net/ipv6/addrconf.c: In function `ipv6_addr_type':
> net/ipv6/addrconf.c:155: case label does not reduce to an integer constant
> net/ipv6/addrconf.c:159: case label does not reduce to an integer constant
> net/ipv6/addrconf.c:163: case label does not reduce to an integer constant
> net/ipv6/addrconf.c:156: warning: unreachable code at beginning of

Grab the patch to that file from 2.5.41-ac and you'll be fine. Dave
'bigendian' Miller says its fixed in the main tree now

2002-10-09 21:23:32

by David Miller

[permalink] [raw]
Subject: Re: 2.5.41 does not build: ipv6/addrconf.c: case label (htonln(something)) does not reduce to an integer constant

From: Nicol?s Lichtmaier <[email protected]>
Date: Wed, 09 Oct 2002 16:04:01 -0300

In that line:
switch((st & htonl(0x00FF0000))) {
case htonl(0x00010000):

Perhaps it's a matter of includes again.

This is fixed in the current sources, just change the
"htonl" to "__constant_htonl" in the case statements.