From: Sami Tolvanen Date: Wed, 16 Sep 2020 19:57:56 +0000 (-0700) Subject: x86, cpu: disable LTO for cpu.c X-Git-Tag: v5.12-rc1~55^2~2 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=d2dcd3e37475a66012f9702c4f9f0863ccdae716;p=thirdparty%2Fkernel%2Flinux.git x86, cpu: disable LTO for cpu.c Clang incorrectly inlines functions with differing stack protector attributes, which breaks __restore_processor_state() that relies on stack protector being disabled. This change disables LTO for cpu.c to work aroung the bug. Link: https://bugs.llvm.org/show_bug.cgi?id=47479 Suggested-by: Nick Desaulniers Signed-off-by: Sami Tolvanen --- diff --git a/arch/x86/power/Makefile b/arch/x86/power/Makefile index 6907b523e856b..5f711a4416236 100644 --- a/arch/x86/power/Makefile +++ b/arch/x86/power/Makefile @@ -5,5 +5,9 @@ OBJECT_FILES_NON_STANDARD_hibernate_asm_$(BITS).o := y # itself be stack-protected CFLAGS_cpu.o := -fno-stack-protector +# Clang may incorrectly inline functions with stack protector enabled into +# __restore_processor_state(): https://bugs.llvm.org/show_bug.cgi?id=47479 +CFLAGS_REMOVE_cpu.o := $(CC_FLAGS_LTO) + obj-$(CONFIG_PM_SLEEP) += cpu.o obj-$(CONFIG_HIBERNATION) += hibernate_$(BITS).o hibernate_asm_$(BITS).o hibernate.o