[PATCH] Always inline system calls
Bernhard Fischer
rep.dot.nop at gmail.com
Tue Dec 4 13:07:33 UTC 2007
On Tue, Dec 04, 2007 at 01:31:13PM +0100, Carmelo AMOROSO wrote:
> Bernhard Fischer wrote:
>> On Tue, Dec 04, 2007 at 08:36:31AM +0100, 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.
>>>
>>> Cheers,
>>> Carmelo
>>>
>>>> CC ldso/ldso/ldso.oS
>>>> In file included from ./libpthread/linuxthreads.old/sysdeps/sh/tls.h:23,
>>>> from ./include/bits/uClibc_errno.h:35,
>>>> from ./include/errno.h:62,
>>>> from ./include/bits/syscalls.h:16,
>>>> from ./include/sys/syscall.h:34,
>>>> from ./ldso/ldso/sh/dl-syscalls.h:3,
>>>> from ./ldso/include/dl-syscall.h:12,
>>>> from ./ldso/include/ldso.h:36,
>>>> from ldso/ldso/ldso.c:33:
>>>> ./libpthread/linuxthreads.old/sysdeps/sh/pt-machine.h:36: warning: C99 inline functions are not supported; using GNU89
>>>> ./libpthread/linuxthreads.old/sysdeps/sh/pt-machine.h:36: warning: to disable this warning use -fgnu89-inline or the gnu_inline function attribute
>>>>
>>
>> This needs fixing anyway. See the patch in my buildroot repo.
>>
>>
> Hi Bernd,
> could you provide the link... searching among gcc4.1.1 patches from
> buildroot svn
> I did find something related to this.
http://repo.or.cz/w/buildroot.git?a=tree;f=toolchain/uClibc;hb=HEAD
More information about the uClibc
mailing list