Re: [PATCH 4/6] Add support for LZO-compressed kernels for ARM

Matthieu CASTET
2009-08-07T13:27:06Z

Albin Tonnerre a écrit :
> On Fri, Aug 07, 2009 at 01:50:03PM +0200, Matthieu CASTET wrote :
>> Albin Tonnerre a écrit :
>>> On Fri, Aug 07, 2009 at 11:36:56AM +0200, Alain Knaff wrote :
>>>> On 08/07/09 11:24, Albin Tonnerre wrote:
>
>>>>> Regards,
>
>>>> Could it be that the patches that remove division (zutil.h and inflate.c)
>>>> have somehow not been applied?
>
>>> Indeed, they've not been applied. However, I'd rather try to understand why
>>> exactly this is an issue when compiling with -Os and not -O2 instead of working
>>> around it by removing the divisions.
>
>> Look at the generated code.
>
>> Arm doesn't have division instruction.
>> May be at -Os gcc emit a call to the software division, but at -O2 it
>> manage to optimise the division (transform it in shift, inline some
>> builtin, ...).
>
> Yes, I figured that out. What I don't get, though, is that it fails while the
> software division symbol (__aeabi_uidivmod here) does seem to be provided by
> libgcc.
>
AFAIK we don't link the kernel with libgcc.
That's why the kernel provide __aeabi_* in arch/arm/lib