From: Masahiro Yamada Date: Wed, 5 Dec 2018 06:27:19 +0000 (+0900) Subject: x86/build: Fix compiler support check for CONFIG_RETPOLINE X-Git-Tag: v4.1.12-124.31.3~290 X-Git-Url: https://www.infradead.org/git/?a=commitdiff_plain;h=8599c5687c8114f116d1dec8c6853828e755d54a;p=users%2Fjedix%2Flinux-maple.git x86/build: Fix compiler support check for CONFIG_RETPOLINE It is troublesome to add a diagnostic like this to the Makefile parse stage because the top-level Makefile could be parsed with a stale include/config/auto.conf. Once you are hit by the error about non-retpoline compiler, the compilation still breaks even after disabling CONFIG_RETPOLINE. The easiest fix is to move this check to the "archprepare" like this commit did: 829fe4aa9ac1 ("x86: Allow generating user-space headers without a compiler") Reported-by: Meelis Roos Tested-by: Meelis Roos Signed-off-by: Masahiro Yamada Acked-by: Zhenzhong Duan Cc: Borislav Petkov Cc: Linus Torvalds Cc: Peter Zijlstra Cc: Thomas Gleixner Cc: Zhenzhong Duan Fixes: 4cd24de3a098 ("x86/retpoline: Make CONFIG_RETPOLINE depend on compiler support") Link: http://lkml.kernel.org/r/1543991239-18476-1-git-send-email-yamada.masahiro@socionext.com Link: https://lkml.org/lkml/2018/12/4/206 Signed-off-by: Ingo Molnar (cherry picked from commit 25896d073d8a0403b07e6dec56f58e6c33678207) Orabug: 29211617 Signed-off-by: Alejandro Jimenez Reviewed-by: Boris Ostrovsky Signed-off-by: Brian Maly Conflicts: arch/x86/Makefile The archprepare rule is different in UEK and upstream makefiles Signed-off-by: Brian Maly --- diff --git a/arch/x86/Makefile b/arch/x86/Makefile index dfc305b91e2a4..a53d1f150bea1 100644 --- a/arch/x86/Makefile +++ b/arch/x86/Makefile @@ -174,9 +174,6 @@ KBUILD_AFLAGS += $(mflags-y) # Avoid indirect branches in kernel to deal with Spectre ifdef CONFIG_RETPOLINE RETPOLINE_CFLAGS += $(call cc-option,-mindirect-branch=thunk-extern -mindirect-branch-register) - ifeq ($(RETPOLINE_CFLAGS),) - $(error You are building kernel with non-retpoline compiler, please update your compiler.) - endif KBUILD_CFLAGS += $(RETPOLINE_CFLAGS) endif @@ -193,6 +190,13 @@ archprepare: ifeq ($(CONFIG_KEXEC_FILE),y) $(Q)$(MAKE) $(build)=arch/x86/purgatory arch/x86/purgatory/kexec-purgatory.c endif +ifdef CONFIG_RETPOLINE +ifeq ($(RETPOLINE_CFLAGS),) + @echo "You are building kernel with non-retpoline compiler." >&2 + @echo "Please update your compiler." >&2 + @false +endif +endif ### # Kernel objects