Re: [PATCH v2 00/15] x86/boot: Rework PE header generation

From: Ingo Molnar
Date: Sun Sep 17 2023 - 13:52:20 EST



* Ard Biesheuvel <ardb@xxxxxxxxxx> wrote:

> On Sat, 16 Sept 2023 at 11:11, Ingo Molnar <mingo@xxxxxxxxxx> wrote:
> >
> >
> > * Ard Biesheuvel <ardb@xxxxxxxxxx> wrote:
> >
> > > > > So, the first 8 patches broke the x86-64-defconfig-ish Qemu bzImage bootup,
> > > > > due to the 8th patch:
> > > > >
> > > > > 988b52b207a9fe74c3699bda8c2256714926b94b is the first bad commit
> > > > > commit 988b52b207a9fe74c3699bda8c2256714926b94b
> > > > > Author: Ard Biesheuvel <ardb@xxxxxxxxxx>
> > > > > Date: Tue Sep 12 09:01:01 2023 +0000
> > > > >
> > > > > x86/boot: Define setup size in linker script
> > > > >
> > > > > I've removed it for now - but this side effect was not expected.
> > > > >
> > > >
> > > > No, definitely not expected. I tested various combinations of i386 /
> > > > x86_64 built with GCC / Clang doing EFI or BIOS boot.
> > > >
> > > > I'll rebase the remaining stuff onto -tip and see if I can reproduce this.
> > >
> > > This is actually quite bizarre. x86_64_defconfig has
> > > CONFIG_EFI_MIXED=y and i tested that this change produces the exact
> > > same bzImage binary in that case.
> > >
> > > Could you send me the .config and the QEMU command line perhaps?
> >
> > So the patch below is the delta between v2 and v3 - that is expected
> > to fix the bzImage boot crash, right?
> >
>
> Yes.
>
> ld.bfd does something unexpected [to me] here, and the resulting value
> turns out not to be a multiple of 512 at all.
>
> With this tweak, my claim that this patch does not affect the binary
> bzImage at all actually holds for ld.bfd as well (provided that
> CONFIG_EFI_MIXED=y and CONFIG_LOCAL_VERSION_AUTO is disabled)

Ok - it boots & works fine for me too now, with the full series applied.

Thanks,

Ingo