Message ID | 20220216090300.9424-2-roger.pau@citrix.com (mailing list archive) |
---|---|
State | Superseded |
Headers | show |
Series | retpoline: add clang support + Kconfig selectable | expand |
On 16.02.2022 10:02, Roger Pau Monne wrote: > Current retpoline checks apply to GCC only, so make it obvious by > prefixing the Kconfig option with GCC. Keep the previous option as a > way to signal generic retpoline support regardless of the underlying > compiler. > > No functional change intended. > > Signed-off-by: Roger Pau Monné <roger.pau@citrix.com> Reviewed-by: Jan Beulich <jbeulich@suse.com> with one remark: > --- a/xen/arch/x86/Kconfig > +++ b/xen/arch/x86/Kconfig > @@ -32,9 +32,13 @@ config ARCH_DEFCONFIG > string > default "arch/x86/configs/x86_64_defconfig" > > -config INDIRECT_THUNK > +config GCC_INDIRECT_THUNK > def_bool $(cc-option,-mindirect-branch-register) > > +config INDIRECT_THUNK > + depends on GCC_INDIRECT_THUNK > + def_bool y I think it is more logical (and more consistent) if "depends on" would come after the basic type (i.e. the "def_bool" here). Jan
diff --git a/xen/arch/x86/Kconfig b/xen/arch/x86/Kconfig index b4abfca46f..2cd713724f 100644 --- a/xen/arch/x86/Kconfig +++ b/xen/arch/x86/Kconfig @@ -32,9 +32,13 @@ config ARCH_DEFCONFIG string default "arch/x86/configs/x86_64_defconfig" -config INDIRECT_THUNK +config GCC_INDIRECT_THUNK def_bool $(cc-option,-mindirect-branch-register) +config INDIRECT_THUNK + depends on GCC_INDIRECT_THUNK + def_bool y + config HAS_AS_CET_SS # binutils >= 2.29 or LLVM >= 6 def_bool $(as-instr,wrssq %rax$(comma)0;setssbsy) diff --git a/xen/arch/x86/arch.mk b/xen/arch/x86/arch.mk index fa7cf38443..2da4bdb1ed 100644 --- a/xen/arch/x86/arch.mk +++ b/xen/arch/x86/arch.mk @@ -42,10 +42,10 @@ CFLAGS += -mno-red-zone -fpic # SSE setup for variadic function calls. CFLAGS += -mno-sse $(call cc-option,$(CC),-mskip-rax-setup) -# Compile with thunk-extern, indirect-branch-register if avaiable. -CFLAGS-$(CONFIG_INDIRECT_THUNK) += -mindirect-branch=thunk-extern -CFLAGS-$(CONFIG_INDIRECT_THUNK) += -mindirect-branch-register -CFLAGS-$(CONFIG_INDIRECT_THUNK) += -fno-jump-tables +# Compile with gcc thunk-extern, indirect-branch-register if available. +CFLAGS-$(CONFIG_GCC_INDIRECT_THUNK) += -mindirect-branch=thunk-extern +CFLAGS-$(CONFIG_GCC_INDIRECT_THUNK) += -mindirect-branch-register +CFLAGS-$(CONFIG_GCC_INDIRECT_THUNK) += -fno-jump-tables # If supported by the compiler, reduce stack alignment to 8 bytes. But allow # this to be overridden elsewhere.
Current retpoline checks apply to GCC only, so make it obvious by prefixing the Kconfig option with GCC. Keep the previous option as a way to signal generic retpoline support regardless of the underlying compiler. No functional change intended. Signed-off-by: Roger Pau Monné <roger.pau@citrix.com> --- xen/arch/x86/Kconfig | 6 +++++- xen/arch/x86/arch.mk | 8 ++++---- 2 files changed, 9 insertions(+), 5 deletions(-)