Messages in this thread | | | Date | Fri, 26 Feb 2021 12:59:17 -0800 | From | Kees Cook <> | Subject | Re: [PATCH] arm64: vmlinux.lds.S: keep .entry.tramp.text section |
| |
On Fri, Feb 26, 2021 at 03:03:39PM +0100, Arnd Bergmann wrote: > From: Arnd Bergmann <arnd@arndb.de> > > 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 <arnd@arndb.de>
As a work-around, it seems fine to me.
Reviewed-by: Kees Cook <keescook@chromium.org>
-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
| |