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.cnet/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!
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.cnet/ipv6/addrconf.c: In function `ipv6_addr_type':net/ipv6/addrconf.c:155: case label does not reduce to an integer constantnet/ipv6/addrconf.c:159: case label does not reduce to an integer constantnet/ipv6/addrconf.c:163: case label does not reduce to an integer constantnet/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
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.