All of lore.kernel.org
 help / color / mirror / Atom feed
From: Nick Desaulniers <ndesaulniers@google.com>
To: Masahiro Yamada <masahiroy@kernel.org>
Cc: "maintainer:X86 ARCHITECTURE (32-BIT AND 64-BIT)"
	<x86@kernel.org>, Ingo Molnar <mingo@kernel.org>,
	Thomas Gleixner <tglx@linutronix.de>,
	Borislav Petkov <bp@alien8.de>, "H . Peter Anvin" <hpa@zytor.com>,
	LKML <linux-kernel@vger.kernel.org>,
	"Jason A . Donenfeld" <Jason@zx2c4.com>,
	Ingo Molnar <mingo@redhat.com>,
	clang-built-linux <clang-built-linux@googlegroups.com>
Subject: Re: [PATCH 2/7] x86: remove always-defined CONFIG_AS_CFI
Date: Mon, 23 Mar 2020 13:37:57 -0700	[thread overview]
Message-ID: <CAKwvOd=at2WhPCmgChSTPm1Du6nD09N=JSUmKU2r86+nVYRrLA@mail.gmail.com> (raw)
In-Reply-To: <20200323020844.17064-3-masahiroy@kernel.org>

On Sun, Mar 22, 2020 at 7:09 PM Masahiro Yamada <masahiroy@kernel.org> wrote:
>
> CONFIG_AS_CFI was introduced by commit e2414910f212 ("[PATCH] x86:
> Detect CFI support in the assembler at runtime"), and extended by
> commit f0f12d85af85 ("x86_64: Check for .cfi_rel_offset in CFI probe").
>
> We raise the minimal supported binutils version from time to time.
> The last bump was commit 1fb12b35e5ff ("kbuild: Raise the minimum
> required binutils version to 2.21").

Yep, looks like 2.21 was released in 2010, while CFI_rel_offset was
added to binutils back in 2003.  LGTM, thanks for the patch (2 less
assembler invocations during a build).
Reviewed-by: Nick Desaulniers <ndesaulniers@google.com>

>
> I confirmed the code in $(call as-instr,...) can be assembled by the
> binutils 2.21 assembler and also by LLVM integrated assembler.
>
> Remove CONFIG_AS_CFI, which is always defined.
>
> Signed-off-by: Masahiro Yamada <masahiroy@kernel.org>
> ---
>
> If this series is OK, we can do follwup cleanups.
> We can hard-code the assembler code, and delete CFI_* macros entirely.
>
>
>  arch/x86/Makefile             | 10 ++--------
>  arch/x86/include/asm/dwarf2.h | 36 -----------------------------------
>  2 files changed, 2 insertions(+), 44 deletions(-)
>
> diff --git a/arch/x86/Makefile b/arch/x86/Makefile
> index 513a55562d75..72f8f744ebd7 100644
> --- a/arch/x86/Makefile
> +++ b/arch/x86/Makefile
> @@ -177,12 +177,6 @@ ifeq ($(ACCUMULATE_OUTGOING_ARGS), 1)
>         KBUILD_CFLAGS += $(call cc-option,-maccumulate-outgoing-args,)
>  endif
>
> -# Stackpointer is addressed different for 32 bit and 64 bit x86
> -sp-$(CONFIG_X86_32) := esp
> -sp-$(CONFIG_X86_64) := rsp
> -
> -# do binutils support CFI?
> -cfi := $(call as-instr,.cfi_startproc\n.cfi_rel_offset $(sp-y)$(comma)0\n.cfi_endproc,-DCONFIG_AS_CFI=1)
>  # is .cfi_signal_frame supported too?
>  cfi-sigframe := $(call as-instr,.cfi_startproc\n.cfi_signal_frame\n.cfi_endproc,-DCONFIG_AS_CFI_SIGNAL_FRAME=1)
>  cfi-sections := $(call as-instr,.cfi_sections .debug_frame,-DCONFIG_AS_CFI_SECTIONS=1)
> @@ -196,8 +190,8 @@ sha1_ni_instr :=$(call as-instr,sha1msg1 %xmm0$(comma)%xmm1,-DCONFIG_AS_SHA1_NI=
>  sha256_ni_instr :=$(call as-instr,sha256msg1 %xmm0$(comma)%xmm1,-DCONFIG_AS_SHA256_NI=1)
>  adx_instr := $(call as-instr,adox %r10$(comma)%r10,-DCONFIG_AS_ADX=1)
>
> -KBUILD_AFLAGS += $(cfi) $(cfi-sigframe) $(cfi-sections) $(asinstr) $(avx_instr) $(avx2_instr) $(avx512_instr) $(sha1_ni_instr) $(sha256_ni_instr) $(adx_instr)
> -KBUILD_CFLAGS += $(cfi) $(cfi-sigframe) $(cfi-sections) $(asinstr) $(avx_instr) $(avx2_instr) $(avx512_instr) $(sha1_ni_instr) $(sha256_ni_instr) $(adx_instr)
> +KBUILD_AFLAGS += $(cfi-sigframe) $(cfi-sections) $(asinstr) $(avx_instr) $(avx2_instr) $(avx512_instr) $(sha1_ni_instr) $(sha256_ni_instr) $(adx_instr)
> +KBUILD_CFLAGS += $(cfi-sigframe) $(cfi-sections) $(asinstr) $(avx_instr) $(avx2_instr) $(avx512_instr) $(sha1_ni_instr) $(sha256_ni_instr) $(adx_instr)
>
>  KBUILD_LDFLAGS := -m elf_$(UTS_MACHINE)
>
> diff --git a/arch/x86/include/asm/dwarf2.h b/arch/x86/include/asm/dwarf2.h
> index 5a0502212bc5..90807583cad7 100644
> --- a/arch/x86/include/asm/dwarf2.h
> +++ b/arch/x86/include/asm/dwarf2.h
> @@ -6,15 +6,6 @@
>  #warning "asm/dwarf2.h should be only included in pure assembly files"
>  #endif
>
> -/*
> - * Macros for dwarf2 CFI unwind table entries.
> - * See "as.info" for details on these pseudo ops. Unfortunately
> - * they are only supported in very new binutils, so define them
> - * away for older version.
> - */
> -
> -#ifdef CONFIG_AS_CFI
> -
>  #define CFI_STARTPROC          .cfi_startproc
>  #define CFI_ENDPROC            .cfi_endproc
>  #define CFI_DEF_CFA            .cfi_def_cfa
> @@ -55,31 +46,4 @@
>  #endif
>  #endif
>
> -#else
> -
> -/*
> - * Due to the structure of pre-exisiting code, don't use assembler line
> - * comment character # to ignore the arguments. Instead, use a dummy macro.
> - */
> -.macro cfi_ignore a=0, b=0, c=0, d=0
> -.endm
> -
> -#define CFI_STARTPROC          cfi_ignore
> -#define CFI_ENDPROC            cfi_ignore
> -#define CFI_DEF_CFA            cfi_ignore
> -#define CFI_DEF_CFA_REGISTER   cfi_ignore
> -#define CFI_DEF_CFA_OFFSET     cfi_ignore
> -#define CFI_ADJUST_CFA_OFFSET  cfi_ignore
> -#define CFI_OFFSET             cfi_ignore
> -#define CFI_REL_OFFSET         cfi_ignore
> -#define CFI_REGISTER           cfi_ignore
> -#define CFI_RESTORE            cfi_ignore
> -#define CFI_REMEMBER_STATE     cfi_ignore
> -#define CFI_RESTORE_STATE      cfi_ignore
> -#define CFI_UNDEFINED          cfi_ignore
> -#define CFI_ESCAPE             cfi_ignore
> -#define CFI_SIGNAL_FRAME       cfi_ignore
> -
> -#endif
> -
>  #endif /* _ASM_X86_DWARF2_H */
> --
> 2.17.1
>
> --
> You received this message because you are subscribed to the Google Groups "Clang Built Linux" group.
> To unsubscribe from this group and stop receiving emails from it, send an email to clang-built-linux+unsubscribe@googlegroups.com.
> To view this discussion on the web visit https://groups.google.com/d/msgid/clang-built-linux/20200323020844.17064-3-masahiroy%40kernel.org.



-- 
Thanks,
~Nick Desaulniers

  reply	other threads:[~2020-03-23 20:38 UTC|newest]

Thread overview: 27+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-03-23  2:08 [PATCH 0/7] x86: remove always-defined CONFIG_AS_* options Masahiro Yamada
2020-03-23  2:08 ` [PATCH 1/7] x86: remove unneeded defined(__ASSEMBLY__) check from asm/dwarf2.h Masahiro Yamada
2020-03-23  2:08 ` [PATCH 2/7] x86: remove always-defined CONFIG_AS_CFI Masahiro Yamada
2020-03-23 20:37   ` Nick Desaulniers [this message]
2020-03-23  2:08 ` [PATCH 3/7] x86: remove always-defined CONFIG_AS_CFI_SIGNAL_FRAME Masahiro Yamada
2020-03-23 20:45   ` Nick Desaulniers
2020-03-23  2:08 ` [PATCH 4/7] x86: remove always-defined CONFIG_AS_CFI_SECTIONS Masahiro Yamada
2020-03-23 20:59   ` Nick Desaulniers
2020-03-23  2:08 ` [PATCH 5/7] x86: remove always-defined CONFIG_AS_SSSE3 Masahiro Yamada
2020-03-23  9:59   ` kbuild test robot
2020-03-23 10:42   ` kbuild test robot
2020-03-23 18:06   ` Jason A. Donenfeld
2020-03-23 20:44     ` Masahiro Yamada
2020-03-23 20:48       ` Jason A. Donenfeld
2020-03-23 21:01         ` Jason A. Donenfeld
2020-03-23  2:08 ` [PATCH 6/7] x86: remove always-defined CONFIG_AS_AVX Masahiro Yamada
2020-03-23  2:08 ` [PATCH 7/7] x86: add comments about the binutils version to support code in as-instr Masahiro Yamada
2020-03-23  4:07 ` [PATCH 0/7] x86: remove always-defined CONFIG_AS_* options Jason A. Donenfeld
2020-03-23  4:28   ` Jason A. Donenfeld
2020-03-23  6:35     ` Masahiro Yamada
2020-03-23  6:53       ` Jason A. Donenfeld
2020-03-23  9:52         ` Sedat Dilek
2020-03-23 19:50           ` Jason A. Donenfeld
2020-03-24  8:46             ` Sedat Dilek
2020-03-23 22:03         ` Masahiro Yamada
2020-03-23 22:10           ` Jason A. Donenfeld
2020-03-23 19:45 ` Nick Desaulniers

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='CAKwvOd=at2WhPCmgChSTPm1Du6nD09N=JSUmKU2r86+nVYRrLA@mail.gmail.com' \
    --to=ndesaulniers@google.com \
    --cc=Jason@zx2c4.com \
    --cc=bp@alien8.de \
    --cc=clang-built-linux@googlegroups.com \
    --cc=hpa@zytor.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=masahiroy@kernel.org \
    --cc=mingo@kernel.org \
    --cc=mingo@redhat.com \
    --cc=tglx@linutronix.de \
    --cc=x86@kernel.org \
    /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.