Re: [RFC/RFT PATCH 04/19] x86: Make the 64-bit bzImage always physically relocatable

H. Peter Anvin
2026-01-12T04:02:19Z

On 2026-01-08 01:25, Ard Biesheuvel wrote:
> On x86_64, the physical placement of the kernel is independent from its
> mapping in the 'High Kernel Mapping' range. This means that even a
> position dependent kernel built without boot-time relocation support can
> run from any suitably aligned physical address, and there is no need to
> make this behavior dependent on whether or not the kernel is virtually
> relocatable.
>
> On i386, the situation is different, given that the physical and virtual
> load offsets must be equal, and so only a relocatable kernel can be
> loaded at a physical address that deviates from its build-time default.
>
> Clarify this in Kconfig and in the code, and advertise the 64-bit
> bzImage as loadable at any physical offset regardless of whether
> CONFIG_RELOCATABLE is set. In practice, this makes little difference,
> given that it defaults to 'y' and is a prerequisite for EFI_STUB and
> RANDOMIZE_BASE, but it will help with some future refactoring of the
> relocation code.
>

I don't see any reason to support non-relocatable kernels anymore. In fact, in
a patchset I am working on I have already removed it.

-hpa