First problem: I cannot compile the kernel with my version of compiler
~~~~ $ make defconfig *** Default configuration is based on 'i386_defconfig' # # configuration written to .config # $ grep CONFIG_RETPOLINE .config CONFIG_RETPOLINE=y $ make arch/x86/Makefile:224: *** You are building kernel with non-retpoline compiler, please update your compiler.. Stop. ~~~~
Second problem: when I disable the feature - it cannot take effect, because the parse-time error happens before `syncconfig`
~~~~ $ scripts/config -d RETPOLINE $ grep CONFIG_RETPOLINE .config # CONFIG_RETPOLINE is not set $ make arch/x86/Makefile:224: *** You are building kernel with non-retpoline compiler, please update your compiler.. Stop. ~~~~
Fixes: 4cd24de3a098 ("x86/retpoline: Make CONFIG_RETPOLINE depend on compiler support")
Signed-off-by: Kirill Marinushkin k.marinushkin@gmail.com Cc: Thomas Gleixner tglx@linutronix.de Cc: Ingo Molnar mingo@redhat.com Cc: Borislav Petkov bp@alien8.de Cc: Zhenzhong Duan zhenzhong.duan@oracle.com Cc: H. Peter Anvin hpa@zytor.com Cc: x86@kernel.org Cc: linux-kernel@vger.kernel.org Cc: stable@vger.kernel.org --- arch/x86/Makefile | 3 --- 1 file changed, 3 deletions(-)
diff --git a/arch/x86/Makefile b/arch/x86/Makefile index f5d7f4134524..26a2198c59b3 100644 --- a/arch/x86/Makefile +++ b/arch/x86/Makefile @@ -220,9 +220,6 @@ KBUILD_CFLAGS += -fno-asynchronous-unwind-tables
# Avoid indirect branches in kernel to deal with Spectre ifdef CONFIG_RETPOLINE -ifeq ($(RETPOLINE_CFLAGS),) - $(error You are building kernel with non-retpoline compiler, please update your compiler.) -endif KBUILD_CFLAGS += $(RETPOLINE_CFLAGS) endif
On Sat, Dec 08, 2018 at 01:38:16PM +0100, Kirill Marinushkin wrote:
First problem: I cannot compile the kernel with my version of compiler
$ make defconfig *** Default configuration is based on 'i386_defconfig' \# \# configuration written to .config \# $ grep CONFIG_RETPOLINE .config CONFIG_RETPOLINE=y $ make arch/x86/Makefile:224: *** You are building kernel with non-retpoline compiler, please update your compiler.. Stop.
Does this help?
https://git.kernel.org/tip/25896d073d8a0403b07e6dec56f58e6c33678207
First problem: I cannot compile the kernel with my version of compiler
Second problem: when I disable the feature - it cannot take effect, because the parse-time error happens before `syncconfig`
On 12/08/18 13:42, Borislav Petkov wrote:
Does this help?
https://git.kernel.org/tip/25896d073d8a0403b07e6dec56f58e6c33678207
The patch which you mentioned fixes the second problem: now I can disable CONFIG_RETPOLINE. But, the first problem is still here: with defconfig and gcc v6.4.0, kernel doesn't build, with this message:
~~~~ $ make scripts/kconfig/conf --syncconfig Kconfig You are building kernel with non-retpoline compiler. Please update your compiler. make: *** [arch/x86/Makefile:311: checkbin] Error 1 ~~~~
I don't think that this is a proper behavior. I suggest to allow compilation
Best Regards, Kirill
On Sat, Dec 08, 2018 at 02:14:47PM +0100, Kirill Marinushkin wrote:
First problem: I cannot compile the kernel with my version of compiler
Second problem: when I disable the feature - it cannot take effect, because the parse-time error happens before `syncconfig`
On 12/08/18 13:42, Borislav Petkov wrote:
Does this help?
https://git.kernel.org/tip/25896d073d8a0403b07e6dec56f58e6c33678207
The patch which you mentioned fixes the second problem: now I can disable CONFIG_RETPOLINE. But, the first problem is still here: with defconfig and gcc v6.4.0, kernel doesn't build, with this message:
$ make scripts/kconfig/conf --syncconfig Kconfig You are building kernel with non-retpoline compiler. Please update your compiler. make: *** [arch/x86/Makefile:311: checkbin] Error 1
I don't think that this is a proper behavior. I suggest to allow compilation
No, you asked for retpoline, and your compiler can not provide that, so erroring out is the correct behavior. It is worse for you to have an option enabled and it not being enabled just because your compiler does not support it. That way you do not have the false sense of security.
thanks,
greg k-h
linux-stable-mirror@lists.linaro.org