[PATCH] Always inline system calls

Carmelo AMOROSO carmelo.amoroso at st.com
Thu Jan 10 18:01:26 UTC 2008


Mike Frysinger wrote:
> On Tuesday 04 December 2007, Carmelo AMOROSO wrote:
>   
>> Paul Mundt wrote:
>>     
>>> On Mon, Dec 03, 2007 at 10:33:39PM +0100, Carmelo Amoroso wrote:
>>>       
>>>> Carmelo Amoroso wrote:
>>>> while doing some test for SH4 to measure size increase for 'always
>>>> inline' changes, doscovered suddenly that gcc-4.1.1 (cross sh4) fails
>>>> with the following error:
>>>>
>>>> ../ldso/ldso/dl-elf.c: In function '_dl_dprintf':
>>>> ../ldso/ldso/dl-elf.c:858: error: unable to find a register to spill in
>>>> class 'R0_REGS' ../ldso/ldso/dl-elf.c:858: error: this is the insn:
>>>> (insn 916 917 24 1 (set (reg/f:SI 1 r1 [219])
>>>>          (mem/u/c:SI (plus:SI (reg:SI 12 r12)
>>>>                  (reg/f:SI 1 r1 [220])) [0 S4 A32])) 172 {movsi_ie}
>>>> (nil) (expr_list:REG_DEAD (reg/f:SI 1 r1 [220])
>>>>          (expr_list:REG_EQUIV (symbol_ref:SI ("_dl_pagesize") <var_decl
>>>> 0x313a720 _dl_pagesize>) (nil))))
>>>>
>>>> either running with -Os or -O0.
>>>> I'll test tomorrow with gcc-4.2.1 to see if it makes difference,
>>>> otherwise I suspect we should go back on my proposal in using always
>>>> inline only for arch strictly requiring it.
>>>>         
>>> We've noticed this with some versions in buildroot also, so it seems to
>>> be a more common issue:
>>>       
>> Indeed at home I have gcc from buildroot. Tested just now at office
>> using gcc-4.2.1 from STMicro toolchain
>> and it works fine, either using -O0 or -Os.
>> I'll try to update buildroot at home with gcc 4.2.1 as well and see if
>> it solves.
>> I'll keep you informed.
>>     
>
> so what's up ?  bug in gcc ?  PR opened up stream ?  reduced test case made ?
> -mike
>   
Hi Mike,
yes is a bug in gcc. It seems that there is already a bug filed 
(http://gcc.gnu.org/bugzilla/show_bug.cgi?id=28618#c13)
but I'm not sure. gcc-4.2.1 from ST toolchain works fine. I've asked to 
our compiler team if it's possible to identify
the single required to solve this.
Also I have filed a bug to track this. See 
https://bugzilla.stlinux.com/show_bug.cgi?id=3093

Carmelo



More information about the uClibc mailing list