Re: [PATCH] arm64: prevent regressions in compressed kernel image size when upgrading to binutils 2.27

From: Siqi Lin
Date: Thu Oct 26 2017 - 17:51:58 EST


On Thu, Oct 26, 2017 at 2:23 PM, Nick Desaulniers
<ndesaulniers@xxxxxxxxxx> wrote:
>
> On Thu, Oct 26, 2017 at 2:17 PM, Siqi Lin <siqilin@xxxxxxxxxx> wrote:
> > I'm OK with sticking with the <2.27 binutils behavior. The gzip data is:
>
> That's what this patch does; goes back to the <2.27 behavior for 2.27+.
>
> > binutils 2.25:
> > Image 41467904
> > Image.gz 13395151
> > binutils 2.27:
> > Image 41467392
> > Image.gz 14114953
> >
> > gzipped kernel increased by 0.69 MiB.
>
> That's without this patch applied? With it applied, what are the
> stats (for gzip)?
>

binutils 2.27 with this patch (with --no-apply-dynamic-relocs):
Image 41535488
Image.gz 13404067

binutils 2.27 without this patch (without --no-apply-dynamic-relocs):
Image 41535488
Image.gz 14125516

The 2.27 gzipped size with this patch is about the same as 2.25.

> > The one special case I see is !CONFIG_RELOCATABLE and compression is
> > used, where there's a tradeoff between compressed image size and the
> > benefit of dynamic relocs.
>
> if !CONFIG_RELOCATABLE, then this patch (well v2 which will use
> CONFIG_RELOCATABLE rather than CONFIG_RANDOMIZE_BASE) doesn't do
> anything.