Robert P. J. Day wrote: > > i'm hoping i'm not abusing this list overly by asking for some help > with debugging an OpenWRT issue. the trac ticket is here: > > https://dev.openwrt.org/ticket/2735 > > and involves cross-compiling an image for the MIPS-based linksys > WRT54GL router. i've verified that this error still exists in the > latest svn update of openwrt and, in a nutshell, it involves the claim > that "__builtin_ffs" is undefined: > > ... > CC [M] /home/openwrt/builds/trunk_brcm47xx/build_dir/linux-brcm47xx/spca5xx-le/spca_core.o > /home/openwrt/builds/trunk_brcm47xx/build_dir/linux-brcm47xx/spca5xx-le/spca_core.c:538:5: > warning: "__builtin_ffs" is not defined > /home/openwrt/builds/trunk_brcm47xx/build_dir/linux-brcm47xx/spca5xx-le/spca_core.c:538:5: > error: missing binary operator before token "(" > ... > > that line in the source file is simply: > > #if PUD_SHIFT > > i have no idea what the problem is here and, as you can see from the > trac ticket, this seems to have started because of the kernel version > upgrade from 2.6.22 to 2.6.23. but what about that would affect the > usage of __builtin_ffs? > > does anyone have an idea why something this basic might be going > wrong now? any suggestions appreciated. thanks. The compiler should never attempt to use __builtin_ffs by itself, because the kernel makefile adds -ffreestanding to CFLAGS. So either your compiler is broken, or the makefile of your kernel tree is incorrect, or somewhere in your kernel tree there's a explicit call to __builtin_ffs (which is also incorrect, as the compiler may invoke library functions to implement it.) Thiemo