Skip to contentSkip to conversation

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

DISCUSSION Nicolás Lichtmaier 3 participants 3 messages Oct 9, 2002

lore
Share & tools
lore
#0 lore raw

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!

#1 lore raw
Quoted 11 lines · Nicolás Lichtmaier

gcc -Wp,-MD,net/ipv6/.addrconf.o.d -D__KERNEL__ -Iinclude -Wall

(quoted diff) +0 -4
-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

#2 lore raw
In reply to Nicolás Lichtmaier

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.