summary refs log tree commit diff
path: root/arch/x86/Makefile
diff options
context:
space:
mode:
authorPeter Zijlstra <peterz@infradead.org>2021-11-19 17:50:24 +0100
committerBorislav Petkov <bp@suse.de>2021-12-08 11:39:42 +0100
commitb2f825bfeda884f9d40386cc7d089d023017d2dd (patch)
tree3c667ee9593bcafff9262554276c038918af12fb /arch/x86/Makefile
parent3411506550b1f714a52b5db087666c08658d2698 (diff)
downloadlinux-b2f825bfeda884f9d40386cc7d089d023017d2dd.tar.gz
x86: Move RETPOLINE*_CFLAGS to arch Makefile
Currently, RETPOLINE*_CFLAGS are defined in the top-level Makefile
but only x86 makes use of them. Move them there. If ever another
architecture finds the need, it can be reconsidered.

  [ bp: Massage a bit. ]

Suggested-by: Nick Desaulniers <ndesaulniers@google.com>
Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org>
Signed-off-by: Borislav Petkov <bp@suse.de>
Reviewed-by: Kees Cook <keescook@chromium.org>
Reviewed-by: Nick Desaulniers <ndesaulniers@google.com>
Link: https://lkml.kernel.org/r/20211119165630.219152765@infradead.org
Diffstat (limited to 'arch/x86/Makefile')
-rw-r--r--arch/x86/Makefile11
1 files changed, 11 insertions, 0 deletions
diff --git a/arch/x86/Makefile b/arch/x86/Makefile
index 42243869216d..2f40de5d82a2 100644
--- a/arch/x86/Makefile
+++ b/arch/x86/Makefile
@@ -12,6 +12,17 @@ else
         KBUILD_DEFCONFIG := $(ARCH)_defconfig
 endif
 
+ifdef CONFIG_CC_IS_GCC
+RETPOLINE_CFLAGS	:= $(call cc-option,-mindirect-branch=thunk-extern -mindirect-branch-register)
+RETPOLINE_VDSO_CFLAGS	:= $(call cc-option,-mindirect-branch=thunk-inline -mindirect-branch-register)
+endif
+ifdef CONFIG_CC_IS_CLANG
+RETPOLINE_CFLAGS	:= -mretpoline-external-thunk
+RETPOLINE_VDSO_CFLAGS	:= -mretpoline
+endif
+export RETPOLINE_CFLAGS
+export RETPOLINE_VDSO_CFLAGS
+
 # For gcc stack alignment is specified with -mpreferred-stack-boundary,
 # clang has the option -mstack-alignment for that purpose.
 ifneq ($(call cc-option, -mpreferred-stack-boundary=4),)