Patch "efi/libstub: zboot.lds: Discard .discard sections" has been added to the 6.9-stable tree

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



This is a note to let you know that I've just added the patch titled

    efi/libstub: zboot.lds: Discard .discard sections

to the 6.9-stable tree which can be found at:
    http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary

The filename of the patch is:
     efi-libstub-zboot.lds-discard-.discard-sections.patch
and it can be found in the queue-6.9 subdirectory.

If you, or anyone else, feels it should not be added to the stable tree,
please let <stable@xxxxxxxxxxxxxxx> know about it.



commit 17bd8b2a2ca6ea7c51e8c5e19297f921f717d9c8
Author: Nathan Chancellor <nathan@xxxxxxxxxx>
Date:   Wed May 22 10:32:43 2024 -0700

    efi/libstub: zboot.lds: Discard .discard sections
    
    [ Upstream commit 5134acb15d9ef27aa2b90aad46d4e89fcef79fdc ]
    
    When building ARCH=loongarch defconfig + CONFIG_UNWINDER_ORC=y using
    LLVM, there is a warning from ld.lld when linking the EFI zboot image
    due to the use of unreachable() in number() in vsprintf.c:
    
      ld.lld: warning: drivers/firmware/efi/libstub/lib.a(vsprintf.stub.o):(.discard.unreachable+0x0): has non-ABS relocation R_LARCH_32_PCREL against symbol ''
    
    If the compiler cannot eliminate the default case for any reason, the
    .discard.unreachable section will remain in the final binary but the
    entire point of any section prefixed with .discard is that it is only
    used at compile time, so it can be discarded via /DISCARD/ in a linker
    script. The asm-generic vmlinux.lds.h includes .discard and .discard.*
    in the COMMON_DISCARDS macro but that is not used for zboot.lds, as it
    is not a kernel image linker script.
    
    Add .discard and .discard.* to /DISCARD/ in zboot.lds, so that any
    sections meant to be discarded at link time are not included in the
    final zboot image. This issue is not specific to LoongArch, it is just
    the first architecture to select CONFIG_OBJTOOL, which defines
    annotate_unreachable() as an asm statement to add the
    .discard.unreachable section, and use the EFI stub.
    
    Closes: https://github.com/ClangBuiltLinux/linux/issues/2023
    Signed-off-by: Nathan Chancellor <nathan@xxxxxxxxxx>
    Acked-by: Huacai Chen <chenhuacai@xxxxxxxxxxx>
    Signed-off-by: Ard Biesheuvel <ardb@xxxxxxxxxx>
    Signed-off-by: Sasha Levin <sashal@xxxxxxxxxx>

diff --git a/drivers/firmware/efi/libstub/zboot.lds b/drivers/firmware/efi/libstub/zboot.lds
index ac8c0ef851581..af2c82f7bd902 100644
--- a/drivers/firmware/efi/libstub/zboot.lds
+++ b/drivers/firmware/efi/libstub/zboot.lds
@@ -41,6 +41,7 @@ SECTIONS
 	}
 
 	/DISCARD/ : {
+		*(.discard .discard.*)
 		*(.modinfo .init.modinfo)
 	}
 }




[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux