• Ard Biesheuvel's avatar
    efi/x86: Move x86 back to libstub · 243b6754
    Ard Biesheuvel authored
    This reverts commit 84be8805, which itself reverted my original
    attempt to move x86 from #include'ing .c files from across the tree
    to using the EFI stub built as a static library.
    
    The issue that affected the original approach was that splitting
    the implementation into several .o files resulted in the variable
    'efi_early' becoming a global with external linkage, which under
    -fPIC implies that references to it must go through the GOT. However,
    dealing with this additional GOT entry turned out to be troublesome
    on some EFI implementations. (GCC's visibility=hidden attribute is
    supposed to lift this requirement, but it turned out not to work on
    the 32-bit build.)
    
    Instead, use a pure getter function to get a reference to efi_early.
    This approach results in no additional GOT entries being generated,
    so there is no need for any changes in the early GOT handling.
    Tested-by: default avatarMaarten Lankhorst <maarten.lankhorst@canonical.com>
    Signed-off-by: default avatarArd Biesheuvel <ard.biesheuvel@linaro.org>
    Signed-off-by: default avatarMatt Fleming <matt.fleming@intel.com>
    243b6754
eboot.c 36.7 KB