[PATCH] arm64: remove special treatment for the link order of head.o
Ard Biesheuvel
ardb at kernel.org
Wed Mar 22 07:51:52 PDT 2023
On Tue, 21 Mar 2023 at 23:26, Aurelien Jarno <aurelien at aurel32.net> wrote:
>
> Hi,
>
> On 2022-10-13 08:35, Masahiro Yamada wrote:
> > In the previous discussion (see the Link tag), Ard pointed out that
> > arm/arm64/kernel/head.o does not need any special treatment - the only
> > piece that must appear right at the start of the binary image is the
> > image header which is emitted into .head.text.
> >
> > The linker script does the right thing to do. The build system does
> > not need to manipulate the link order of head.o.
> >
> > Link: https://lore.kernel.org/lkml/CAMj1kXH77Ja8bSsq2Qj8Ck9iSZKw=1F8Uy-uAWGVDm4-CG=EuA@mail.gmail.com/
> > Suggested-by: Ard Biesheuvel <ardb at kernel.org>
> > Signed-off-by: Masahiro Yamada <masahiroy at kernel.org>
> > ---
> >
> > scripts/head-object-list.txt | 1 -
> > 1 file changed, 1 deletion(-)
> >
> > diff --git a/scripts/head-object-list.txt b/scripts/head-object-list.txt
> > index b16326a92c45..f226e45e3b7b 100644
> > --- a/scripts/head-object-list.txt
> > +++ b/scripts/head-object-list.txt
> > @@ -15,7 +15,6 @@ arch/alpha/kernel/head.o
> > arch/arc/kernel/head.o
> > arch/arm/kernel/head-nommu.o
> > arch/arm/kernel/head.o
> > -arch/arm64/kernel/head.o
> > arch/csky/kernel/head.o
> > arch/hexagon/kernel/head.o
> > arch/ia64/kernel/head.o
>
> This patch causes a significant increase of the arch/arm64/boot/Image
> size. For instance the generic arm64 Debian kernel went from 31 to 39 MB
> after this patch has been applied to the 6.1 stable tree.
>
> In turn this causes issues with some bootloaders, for instance U-Boot on
> a Raspberry Pi limits the kernel size to 36 MB.
>
I cannot reproduce this with mainline
With the patch
$ size vmlinux
text data bss dec hex filename
24567309 14752630 621680 39941619 26175f3 vmlinux
With the patch reverted
$ size vmlinux
text data bss dec hex filename
24567309 14752694 621680 39941683 2617633 vmlinux
It would help to compare the resulting vmlinux ELF images from both
builds to see where the extra space is being allocated
More information about the linux-arm-kernel
mailing list