All of lore.kernel.org
 help / color / mirror / Atom feed
From: Nathan Chancellor <natechancellor@gmail.com>
To: Alexander Lobakin <alobakin@pm.me>
Cc: Thomas Bogendoerfer <tsbogend@alpha.franken.de>,
	Arnd Bergmann <arnd@arndb.de>, Kees Cook <keescook@chromium.org>,
	Nick Desaulniers <ndesaulniers@google.com>,
	Fangrui Song <maskray@google.com>,
	Huacai Chen <chenhuacai@kernel.org>,
	Pei Huang <huangpei@loongson.cn>,
	Jiaxun Yang <jiaxun.yang@flygoat.com>,
	Sami Tolvanen <samitolvanen@google.com>,
	Ingo Molnar <mingo@kernel.org>,
	Ralf Baechle <ralf@linux-mips.org>,
	Corey Minyard <cminyard@mvista.com>,
	linux-mips@vger.kernel.org, linux-kernel@vger.kernel.org,
	linux-arch@vger.kernel.org, stable@vger.kernel.org,
	clang-built-linux@googlegroups.com
Subject: Re: [PATCH v4 mips-next 3/7] MIPS: properly stop .eh_frame generation
Date: Fri, 8 Jan 2021 14:16:19 -0700	[thread overview]
Message-ID: <20210108211619.GC2547542@ubuntu-m3-large-x86> (raw)
In-Reply-To: <20210107123428.354231-3-alobakin@pm.me>

On Thu, Jan 07, 2021 at 12:35:01PM +0000, Alexander Lobakin wrote:
> Commit 866b6a89c6d1 ("MIPS: Add DWARF unwinding to assembly") added
> -fno-asynchronous-unwind-tables to KBUILD_CFLAGS to prevent compiler
> from emitting .eh_frame symbols.
> However, as MIPS heavily uses CFI, that's not enough. Use the
> approach taken for x86 (as it also uses CFI) and explicitly put CFI
> symbols into the .debug_frame section (except for VDSO).
> This allows us to drop .eh_frame from DISCARDS as it's no longer
> being generated.
> 
> Fixes: 866b6a89c6d1 ("MIPS: Add DWARF unwinding to assembly")
> Suggested-by: Kees Cook <keescook@chromium.org>
> Signed-off-by: Alexander Lobakin <alobakin@pm.me>

Reviewed-by: Nathan Chancellor <natechancellor@gmail.com>

> ---
>  arch/mips/include/asm/asm.h    | 18 ++++++++++++++++++
>  arch/mips/kernel/vmlinux.lds.S |  1 -
>  2 files changed, 18 insertions(+), 1 deletion(-)
> 
> diff --git a/arch/mips/include/asm/asm.h b/arch/mips/include/asm/asm.h
> index 3682d1a0bb80..908f6d6ae24b 100644
> --- a/arch/mips/include/asm/asm.h
> +++ b/arch/mips/include/asm/asm.h
> @@ -20,10 +20,27 @@
>  #include <asm/sgidefs.h>
>  #include <asm/asm-eva.h>
>  
> +#ifndef __VDSO__
> +/*
> + * Emit CFI data in .debug_frame sections, not .eh_frame sections.
> + * We don't do DWARF unwinding at runtime, so only the offline DWARF
> + * information is useful to anyone. Note we should change this if we
> + * ever decide to enable DWARF unwinding at runtime.
> + */
> +#define CFI_SECTIONS	.cfi_sections .debug_frame
> +#else
> + /*
> +  * For the vDSO, emit both runtime unwind information and debug
> +  * symbols for the .dbg file.
> +  */
> +#define CFI_SECTIONS
> +#endif
> +
>  /*
>   * LEAF - declare leaf routine
>   */
>  #define LEAF(symbol)					\
> +		CFI_SECTIONS;				\
>  		.globl	symbol;				\
>  		.align	2;				\
>  		.type	symbol, @function;		\
> @@ -36,6 +53,7 @@ symbol:		.frame	sp, 0, ra;			\
>   * NESTED - declare nested routine entry point
>   */
>  #define NESTED(symbol, framesize, rpc)			\
> +		CFI_SECTIONS;				\
>  		.globl	symbol;				\
>  		.align	2;				\
>  		.type	symbol, @function;		\
> diff --git a/arch/mips/kernel/vmlinux.lds.S b/arch/mips/kernel/vmlinux.lds.S
> index 16468957cba2..0f4e46ea4458 100644
> --- a/arch/mips/kernel/vmlinux.lds.S
> +++ b/arch/mips/kernel/vmlinux.lds.S
> @@ -225,6 +225,5 @@ SECTIONS
>  		*(.options)
>  		*(.pdr)
>  		*(.reginfo)
> -		*(.eh_frame)
>  	}
>  }
> -- 
> 2.30.0
> 
> 

  parent reply	other threads:[~2021-01-08 21:17 UTC|newest]

Thread overview: 22+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-01-07 12:33 [PATCH v4 mips-next 0/7] MIPS: vmlinux.lds.S sections fixes & cleanup Alexander Lobakin
2021-01-07 12:34 ` [PATCH v4 mips-next 1/7] MIPS: vmlinux.lds.S: add missing PAGE_ALIGNED_DATA() section Alexander Lobakin
2021-01-07 12:34   ` [PATCH v4 mips-next 2/7] MIPS: vmlinux.lds.S: add ".gnu.attributes" to DISCARDS Alexander Lobakin
2021-01-08 21:12     ` Nathan Chancellor
2021-01-07 12:35   ` [PATCH v4 mips-next 3/7] MIPS: properly stop .eh_frame generation Alexander Lobakin
2021-01-07 21:48     ` Kees Cook
2021-01-08 21:16     ` Nathan Chancellor [this message]
2021-01-08 21:10   ` [PATCH v4 mips-next 1/7] MIPS: vmlinux.lds.S: add missing PAGE_ALIGNED_DATA() section Nathan Chancellor
2021-01-07 13:20 ` [PATCH v4 mips-next 4/7] MIPS: vmlinux.lds.S: catch bad .rel.dyn at link time Alexander Lobakin
2021-01-07 13:20   ` [PATCH v4 mips-next 5/7] MIPS: vmlinux.lds.S: explicitly declare .got table Alexander Lobakin
2021-01-07 21:49     ` Kees Cook
2021-01-08 21:17     ` Nathan Chancellor
2021-01-07 13:20   ` [PATCH v4 mips-next 6/7] vmlinux.lds.h: catch compound literals into data and BSS Alexander Lobakin
2021-01-07 21:51     ` Kees Cook
2021-01-08 21:19     ` Nathan Chancellor
2021-01-07 13:21   ` [PATCH v4 mips-next 7/7] MIPS: select ARCH_WANT_LD_ORPHAN_WARN Alexander Lobakin
2021-01-08 21:19     ` Nathan Chancellor
2021-01-07 21:48   ` [PATCH v4 mips-next 4/7] MIPS: vmlinux.lds.S: catch bad .rel.dyn at link time Kees Cook
2021-01-08 21:17   ` Nathan Chancellor
2021-01-07 21:51 ` [PATCH v4 mips-next 0/7] MIPS: vmlinux.lds.S sections fixes & cleanup Kees Cook
2021-01-09 11:12 ` Thomas Bogendoerfer
2021-01-09 17:22   ` Alexander Lobakin

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20210108211619.GC2547542@ubuntu-m3-large-x86 \
    --to=natechancellor@gmail.com \
    --cc=alobakin@pm.me \
    --cc=arnd@arndb.de \
    --cc=chenhuacai@kernel.org \
    --cc=clang-built-linux@googlegroups.com \
    --cc=cminyard@mvista.com \
    --cc=huangpei@loongson.cn \
    --cc=jiaxun.yang@flygoat.com \
    --cc=keescook@chromium.org \
    --cc=linux-arch@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-mips@vger.kernel.org \
    --cc=maskray@google.com \
    --cc=mingo@kernel.org \
    --cc=ndesaulniers@google.com \
    --cc=ralf@linux-mips.org \
    --cc=samitolvanen@google.com \
    --cc=stable@vger.kernel.org \
    --cc=tsbogend@alpha.franken.de \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.