From: Anthony PERARD Date: Wed, 11 Dec 2019 13:55:06 +0000 (+0000) Subject: xen: Move CONFIG_INDIRECT_THUNK to Kconfig X-Git-Tag: archive/raspbian/4.14.0+80-gd101b417b7-1+rpi1^2~63^2~780 X-Git-Url: https://dgit.raspbian.org/?a=commitdiff_plain;h=c3333c3a5d1224513f801aed11953234851bbf96;p=xen.git xen: Move CONFIG_INDIRECT_THUNK to Kconfig Now that Kconfig has the capability to run shell command when generating CONFIG_* we can use it in some cases to test CFLAGS. CONFIG_INDIRECT_THUNK is a good example that wants to exist both in Makefile and as a C macro, which Kconfig do. So use Kconfig to generate CONFIG_INDIRECT_THUNK and have the CFLAGS depends on that. Signed-off-by: Anthony PERARD Acked-by: Andrew Cooper --- diff --git a/xen/arch/x86/Kconfig b/xen/arch/x86/Kconfig index f853c04564..8149362bde 100644 --- a/xen/arch/x86/Kconfig +++ b/xen/arch/x86/Kconfig @@ -31,6 +31,9 @@ config ARCH_DEFCONFIG string default "arch/x86/configs/x86_64_defconfig" +config INDIRECT_THUNK + def_bool $(cc-option,-mindirect-branch-register) + menu "Architecture Features" source "arch/Kconfig" diff --git a/xen/arch/x86/Rules.mk b/xen/arch/x86/Rules.mk index 92fdbe9d68..a2c257fb95 100644 --- a/xen/arch/x86/Rules.mk +++ b/xen/arch/x86/Rules.mk @@ -71,11 +71,9 @@ CFLAGS += -DGCC_HAS_VISIBILITY_ATTRIBUTE endif # Compile with thunk-extern, indirect-branch-register if avaiable. -ifneq ($(call cc-option,$(CC),-mindirect-branch-register,n),n) +ifeq ($(CONFIG_INDIRECT_THUNK),y) CFLAGS += -mindirect-branch=thunk-extern -mindirect-branch-register -CFLAGS += -DCONFIG_INDIRECT_THUNK CFLAGS += -fno-jump-tables -export CONFIG_INDIRECT_THUNK=y endif # If supported by the compiler, reduce stack alignment to 8 bytes. But allow