mbox series

[0/3] cfi: Use __builtin_function_start

Message ID 20220401201916.1487500-1-samitolvanen@google.com (mailing list archive)
Headers show
Series cfi: Use __builtin_function_start | expand

Message

Sami Tolvanen April 1, 2022, 8:19 p.m. UTC
Clang 14 introduced the __builtin_function_start intrinsic, which
makes it possible to cleanly implement the function_nocfi() macro in a
way that also works with static initializers. Add a default
function_nocfi() implementation and drop the arm64 inline assembly
version.

Sami Tolvanen (3):
  kbuild: Change CFI_CLANG to depend on __builtin_function_start
  linux/compiler-clang.h: define function_nocfi
  arm64: Drop the inline assembly implementation of function_nocfi

 arch/Kconfig                      |  5 +----
 arch/arm64/include/asm/compiler.h | 16 ----------------
 include/linux/compiler-clang.h    | 10 ++++++++++
 init/Kconfig                      |  3 +++
 4 files changed, 14 insertions(+), 20 deletions(-)

Comments

Nick Desaulniers April 1, 2022, 8:49 p.m. UTC | #1
On Fri, Apr 1, 2022 at 1:19 PM Sami Tolvanen <samitolvanen@google.com> wrote:
>
> Clang 14 introduced the __builtin_function_start intrinsic, which
> makes it possible to cleanly implement the function_nocfi() macro in a
> way that also works with static initializers. Add a default
> function_nocfi() implementation and drop the arm64 inline assembly
> version.

For the series
Reviewed-by: Nick Desaulniers <ndesaulniers@google.com>

I wouldn't mind if patch 1/3 included a link to the llvm commit in the
commit message.

Link: https://github.com/llvm/llvm-project/commit/ec2e26eaf63558934f5b73a6e530edc453cf9508
Link: https://github.com/ClangBuiltLinux/linux/issues/1353

>
> Sami Tolvanen (3):
>   kbuild: Change CFI_CLANG to depend on __builtin_function_start
>   linux/compiler-clang.h: define function_nocfi
>   arm64: Drop the inline assembly implementation of function_nocfi
>
>  arch/Kconfig                      |  5 +----
>  arch/arm64/include/asm/compiler.h | 16 ----------------
>  include/linux/compiler-clang.h    | 10 ++++++++++
>  init/Kconfig                      |  3 +++
>  4 files changed, 14 insertions(+), 20 deletions(-)
>
> --
> 2.35.0
>