[PATCH 4/7] x86: remove always-defined CONFIG_AS_CFI_SECTIONS

1 view
Skip to first unread message

Masahiro Yamada

unread,
Mar 22, 2020, 10:09:27 PM3/22/20
to x...@kernel.org, Ingo Molnar, Thomas Gleixner, Borislav Petkov, H . Peter Anvin, linux-...@vger.kernel.org, Jason A . Donenfeld, Masahiro Yamada, Ingo Molnar, clang-bu...@googlegroups.com
CONFIG_AS_CFI_SECTIONS was introduced by commit 9e565292270a ("x86:
Use .cfi_sections for assembly code").

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").

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_SECTIONS, which is always defined.

Signed-off-by: Masahiro Yamada <masa...@kernel.org>
---

arch/x86/Makefile | 6 ++----
arch/x86/include/asm/dwarf2.h | 2 --
2 files changed, 2 insertions(+), 6 deletions(-)

diff --git a/arch/x86/Makefile b/arch/x86/Makefile
index dd275008fc59..e4a062313bb0 100644
--- a/arch/x86/Makefile
+++ b/arch/x86/Makefile
@@ -177,8 +177,6 @@ ifeq ($(ACCUMULATE_OUTGOING_ARGS), 1)
KBUILD_CFLAGS += $(call cc-option,-maccumulate-outgoing-args,)
endif

-cfi-sections := $(call as-instr,.cfi_sections .debug_frame,-DCONFIG_AS_CFI_SECTIONS=1)
-
# does binutils support specific instructions?
asinstr += $(call as-instr,pshufb %xmm0$(comma)%xmm0,-DCONFIG_AS_SSSE3=1)
avx_instr := $(call as-instr,vxorps %ymm0$(comma)%ymm1$(comma)%ymm2,-DCONFIG_AS_AVX=1)
@@ -188,8 +186,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-sections) $(asinstr) $(avx_instr) $(avx2_instr) $(avx512_instr) $(sha1_ni_instr) $(sha256_ni_instr) $(adx_instr)
-KBUILD_CFLAGS += $(cfi-sections) $(asinstr) $(avx_instr) $(avx2_instr) $(avx512_instr) $(sha1_ni_instr) $(sha256_ni_instr) $(adx_instr)
+KBUILD_AFLAGS += $(asinstr) $(avx_instr) $(avx2_instr) $(avx512_instr) $(sha1_ni_instr) $(sha256_ni_instr) $(adx_instr)
+KBUILD_CFLAGS += $(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 d6697aab5706..5d3e7507cbbd 100644
--- a/arch/x86/include/asm/dwarf2.h
+++ b/arch/x86/include/asm/dwarf2.h
@@ -22,7 +22,6 @@
#define CFI_ESCAPE .cfi_escape
#define CFI_SIGNAL_FRAME .cfi_signal_frame

-#if defined(CONFIG_AS_CFI_SECTIONS)
#ifndef BUILD_VDSO
/*
* Emit CFI data in .debug_frame sections, not .eh_frame sections.
@@ -39,6 +38,5 @@
*/
.cfi_sections .eh_frame, .debug_frame
#endif
-#endif

#endif /* _ASM_X86_DWARF2_H */
--
2.17.1

Nick Desaulniers

unread,
Mar 23, 2020, 4:59:20 PM3/23/20
to Masahiro Yamada, maintainer:X86 ARCHITECTURE (32-BIT AND 64-BIT), Ingo Molnar, Thomas Gleixner, Borislav Petkov, H . Peter Anvin, LKML, Jason A . Donenfeld, Ingo Molnar, clang-built-linux
On Sun, Mar 22, 2020 at 7:09 PM Masahiro Yamada <masa...@kernel.org> wrote:
>
> CONFIG_AS_CFI_SECTIONS was introduced by commit 9e565292270a ("x86:
> Use .cfi_sections for assembly code").
>
> 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").

Looks like 2.21 was released in 2010, binutils gained support for
cfi_sections in 2009. There's been some bug fixes to its support over
the years, but we can always add more specific checks later if
necessary.
Reviewed-by: Nick Desaulniers <ndesau...@google.com>
> --
> 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-li...@googlegroups.com.
> To view this discussion on the web visit https://groups.google.com/d/msgid/clang-built-linux/20200323020844.17064-5-masahiroy%40kernel.org.



--
Thanks,
~Nick Desaulniers

Masahiro Yamada

unread,
Mar 23, 2020, 8:14:38 PM3/23/20
to x...@kernel.org, Ingo Molnar, Thomas Gleixner, Borislav Petkov, H . Peter Anvin, linux-...@vger.kernel.org, linux-...@vger.kernel.org, Jason A . Donenfeld, Masahiro Yamada, Ingo Molnar, clang-bu...@googlegroups.com
CONFIG_AS_CFI_SECTIONS was introduced by commit 9e565292270a ("x86:
Use .cfi_sections for assembly code").

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").

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_SECTIONS, which is always defined.

Signed-off-by: Masahiro Yamada <masa...@kernel.org>
Acked-by: Jason A. Donenfeld <Ja...@zx2c4.com>
Reviewed-by: Nick Desaulniers <ndesau...@google.com>
---

Changes in v2: None

arch/x86/Makefile | 6 ++----
arch/x86/include/asm/dwarf2.h | 2 --
2 files changed, 2 insertions(+), 6 deletions(-)

diff --git a/arch/x86/Makefile b/arch/x86/Makefile
index dd275008fc59..e4a062313bb0 100644
--- a/arch/x86/Makefile
+++ b/arch/x86/Makefile
@@ -177,8 +177,6 @@ ifeq ($(ACCUMULATE_OUTGOING_ARGS), 1)
KBUILD_CFLAGS += $(call cc-option,-maccumulate-outgoing-args,)
endif

-cfi-sections := $(call as-instr,.cfi_sections .debug_frame,-DCONFIG_AS_CFI_SECTIONS=1)
-
# does binutils support specific instructions?
asinstr += $(call as-instr,pshufb %xmm0$(comma)%xmm0,-DCONFIG_AS_SSSE3=1)
avx_instr := $(call as-instr,vxorps %ymm0$(comma)%ymm1$(comma)%ymm2,-DCONFIG_AS_AVX=1)
@@ -188,8 +186,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-sections) $(asinstr) $(avx_instr) $(avx2_instr) $(avx512_instr) $(sha1_ni_instr) $(sha256_ni_instr) $(adx_instr)
-KBUILD_CFLAGS += $(cfi-sections) $(asinstr) $(avx_instr) $(avx2_instr) $(avx512_instr) $(sha1_ni_instr) $(sha256_ni_instr) $(adx_instr)
+KBUILD_AFLAGS += $(asinstr) $(avx_instr) $(avx2_instr) $(avx512_instr) $(sha1_ni_instr) $(sha256_ni_instr) $(adx_instr)
+KBUILD_CFLAGS += $(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 f440790f09f9..c1e0c315a622 100644
--- a/arch/x86/include/asm/dwarf2.h
+++ b/arch/x86/include/asm/dwarf2.h
@@ -21,7 +21,6 @@
#define CFI_UNDEFINED .cfi_undefined
#define CFI_ESCAPE .cfi_escape

-#if defined(CONFIG_AS_CFI_SECTIONS)
#ifndef BUILD_VDSO
/*
* Emit CFI data in .debug_frame sections, not .eh_frame sections.
@@ -38,6 +37,5 @@

Masahiro Yamada

unread,
Mar 24, 2020, 4:49:37 AM3/24/20
to linux-...@vger.kernel.org, David S . Miller, Linus Torvalds, Kees Cook, clang-bu...@googlegroups.com, Herbert Xu, linux-...@vger.kernel.org, Ingo Molnar, Thomas Gleixner, Borislav Petkov, Peter Zijlstra, H . Peter Anvin, x...@kernel.org, linux-...@vger.kernel.org, Masahiro Yamada
CONFIG_AS_CFI_SECTIONS was introduced by commit 9e565292270a ("x86:
Use .cfi_sections for assembly code").

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").

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_SECTIONS, which is always defined.

Signed-off-by: Masahiro Yamada <masa...@kernel.org>
Acked-by: Jason A. Donenfeld <Ja...@zx2c4.com>
Reviewed-by: Nick Desaulniers <ndesau...@google.com>
---

Masahiro Yamada

unread,
Mar 26, 2020, 4:02:20 AM3/26/20
to linux-...@vger.kernel.org, Thomas Gleixner, Nick Desaulniers, Borislav Petkov, Peter Zijlstra, H . Peter Anvin, x...@kernel.org, Jason A . Donenfeld, clang-bu...@googlegroups.com, Masahiro Yamada, Ingo Molnar, linux-...@vger.kernel.org
CONFIG_AS_CFI_SECTIONS was introduced by commit 9e565292270a ("x86:
Use .cfi_sections for assembly code").

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").

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_SECTIONS, which is always defined.

Signed-off-by: Masahiro Yamada <masa...@kernel.org>
Acked-by: Jason A. Donenfeld <Ja...@zx2c4.com>
Reviewed-by: Nick Desaulniers <ndesau...@google.com>
---

Changes in v2: None
Reply all
Reply to author
Forward
0 new messages