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

Albin Tonnerre
2009-08-07T10:21:30Z

On Fri, Aug 07, 2009 at 11:36:56AM +0200, Alain Knaff wrote :
> On 08/07/09 11:24, Albin Tonnerre wrote:
> > On Thu, Aug 06, 2009 at 11:40:55PM +0100, Russell King - ARM Linux wrote :
> >> On Mon, Aug 03, 2009 at 04:58:19PM +0200, Albin Tonnerre wrote:
> >>> This is the second part of patch. This part includes:
> >>> - changes to ach/arch/boot/Makefile to make it easier to add new
> >>> compression types
> >>> - new piggy.lzo.S necessary for lzo compression
> >>> - changes in arch/arm/boot/compressed/misc.c to allow the use of lzo or
> >>> gzip, depending on the config
> >>> - Kconfig support

> >> FYI, with these patches applied and selecting GZIP method, I get
> >> linker errors. I've been unable to track down what's going on, but
> >> it appears to be a libgcc issue.

> >> In spite of the decompressor being built as an EABI object, gcc seems
> >> to be issuing calls to __umodsi3, which isn't in the EABI libgcc
> >> (they're called something different - don't ask.)

> > I also happen to have issues related to the linker not finding __aeabi_uidivmod,
> > but only when compiling with CONFIG_CC_OPTIMIZE_FOR_SIZE. Is it similar for you,
> > or does it also fail when compiling with -O2 ?

> >> So I think these patches need further testing and evaluation on ARM
> >> before they can be merged. Moreover, I'd like to see some comparisons
> >> between the _current_ gzip method, the new gzip method and the lzo
> >> method on ARM.

> > I don't have my ARM platforms at hand, but I'll so these comparisons in a couple
> > days when I access to them again.

> > 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.

Regards,
--
Albin Tonnerre, Free Electrons
Kernel, drivers and embedded Linux development,
consulting, training and support.