On Fri, Feb 26, 2021 at 03:03:39PM +0100, Arnd Bergmann wrote: > From: Arnd Bergmann <[email protected]> > > When building with CONFIG_LD_DEAD_CODE_DATA_ELIMINATION, > I sometimes see an assertion > > ld.lld: error: Entry trampoline text too big
Heh, "too big" seems a weird report for having it discarded. :) Any idea on this Fangrui? ( I see this is https://github.com/ClangBuiltLinux/linux/issues/1311 ) > > This happens when any reference to the trampoline is discarded at link > time. Marking the section as KEEP() avoids the assertion, but I have > not figured out whether this is the correct solution for the underlying > problem. > > Signed-off-by: Arnd Bergmann <[email protected]> As a work-around, it seems fine to me. Reviewed-by: Kees Cook <[email protected]> -Kees > --- > arch/arm64/kernel/vmlinux.lds.S | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/arch/arm64/kernel/vmlinux.lds.S b/arch/arm64/kernel/vmlinux.lds.S > index 926cdb597a45..c5ee9d5842db 100644 > --- a/arch/arm64/kernel/vmlinux.lds.S > +++ b/arch/arm64/kernel/vmlinux.lds.S > @@ -96,7 +96,7 @@ jiffies = jiffies_64; > #define TRAMP_TEXT \ > . = ALIGN(PAGE_SIZE); \ > __entry_tramp_text_start = .; \ > - *(.entry.tramp.text) \ > + KEEP(*(.entry.tramp.text)) \ > . = ALIGN(PAGE_SIZE); \ > __entry_tramp_text_end = .; > #else > -- > 2.29.2 > -- Kees Cook

