• Nicholas Piggin's avatar
    powerpc/64: Handle linker stubs in low .text code · 951eedeb
    Nicholas Piggin authored
    Very large kernels may require linker stubs for branches from HEAD
    text code. The linker may place these stubs before the HEAD text
    sections, which breaks the assumption that HEAD text is located at 0
    (or the .text section being located at 0x7000/0x8000 on Book3S
    kernels).
    
    Provide an option to create a small section just before the .text
    section with an empty 256 - 4 bytes, and adjust the start of the .text
    section to match. The linker will tend to put stubs in that section
    and not break our relative-to-absolute offset assumptions.
    
    This causes a small waste of space on common kernels, but allows large
    kernels to build and boot. For now, it is an EXPERT config option,
    defaulting to =n, but a reference is provided for it in the build-time
    check for such breakage. This is good enough for allyesconfig and
    custom users / hackers.
    Signed-off-by: default avatarNicholas Piggin <npiggin@gmail.com>
    Signed-off-by: default avatarMichael Ellerman <mpe@ellerman.id.au>
    951eedeb
head-64.h 13.8 KB