lkml.org 
[lkml]   [2020]   [Jun]   [8]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH AUTOSEL 5.4 022/175] efi/libstub/x86: Work around LLVM ELF quirk build regression
    Date
    From: Ard Biesheuvel <ardb@kernel.org>

    [ Upstream commit f77767ed5f4d398b29119563155e4ece2dfeee13 ]

    When building the x86 EFI stub with Clang, the libstub Makefile rules
    that manipulate the ELF object files may throw an error like:

    STUBCPY drivers/firmware/efi/libstub/efi-stub-helper.stub.o
    strip: drivers/firmware/efi/libstub/efi-stub-helper.stub.o: Failed to find link section for section 10
    objcopy: drivers/firmware/efi/libstub/efi-stub-helper.stub.o: Failed to find link section for section 10

    This is the result of a LLVM feature [0] where symbol references are
    stored in a LLVM specific .llvm_addrsig section in a non-transparent way,
    causing generic ELF tools such as strip or objcopy to choke on them.

    So force the compiler not to emit these sections, by passing the
    appropriate command line option.

    [0] https://sourceware.org/bugzilla/show_bug.cgi?id=23817

    Cc: Nick Desaulniers <ndesaulniers@google.com>
    Cc: Peter Collingbourne <pcc@google.com>
    Cc: Sami Tolvanen <samitolvanen@google.com>
    Reported-by: Arnd Bergmann <arnd@arndb.de>
    Suggested-by: Fangrui Song <maskray@google.com>
    Signed-off-by: Ard Biesheuvel <ardb@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>
    ---
    drivers/firmware/efi/libstub/Makefile | 1 +
    1 file changed, 1 insertion(+)

    diff --git a/drivers/firmware/efi/libstub/Makefile b/drivers/firmware/efi/libstub/Makefile
    index ee0661ddb25b..8c5b5529dbc0 100644
    --- a/drivers/firmware/efi/libstub/Makefile
    +++ b/drivers/firmware/efi/libstub/Makefile
    @@ -28,6 +28,7 @@ KBUILD_CFLAGS := $(cflags-y) -DDISABLE_BRANCH_PROFILING \
    -D__NO_FORTIFY \
    $(call cc-option,-ffreestanding) \
    $(call cc-option,-fno-stack-protector) \
    + $(call cc-option,-fno-addrsig) \
    -D__DISABLE_EXPORTS

    GCOV_PROFILE := n
    --
    2.25.1
    \
     
     \ /
      Last update: 2020-06-09 02:14    [W:3.009 / U:0.444 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site