linux-mips
[Top] [All Lists]

Re: [OT?] is there something strange about __builtin_ffs these days?

To: "Robert P. J. Day" <rpjday@crashcourse.ca>
Subject: Re: [OT?] is there something strange about __builtin_ffs these days?
From: Thiemo Seufer <ths@networkno.de>
Date: Mon, 17 Dec 2007 21:45:03 +0000
Cc: linux-mips@linux-mips.org
In-reply-to: <alpine.LFD.0.9999.0712171602090.13289@localhost.localdomain>
Original-recipient: rfc822;linux-mips@linux-mips.org
References: <alpine.LFD.0.9999.0712171602090.13289@localhost.localdomain>
Sender: linux-mips-bounce@linux-mips.org
User-agent: Mutt/1.5.17 (2007-11-01)
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

<Prev in Thread] Current Thread [Next in Thread>