Messages in this thread Patch in this message | | | Date | Sat, 26 Dec 2009 00:48:41 GMT | From | "tip-bot for H. Peter Anvin" <> | Subject | [tip:x86/urgent] x86, compress: Force i386 instructions for the decompressor |
| |
Commit-ID: 17a2a9b57a9a7d2fd8f97df951b5e63e0bd56ef5 Gitweb: http://git.kernel.org/tip/17a2a9b57a9a7d2fd8f97df951b5e63e0bd56ef5 Author: H. Peter Anvin <hpa@zytor.com> AuthorDate: Fri, 25 Dec 2009 15:40:38 -0800 Committer: H. Peter Anvin <hpa@zytor.com> CommitDate: Fri, 25 Dec 2009 15:40:38 -0800
x86, compress: Force i386 instructions for the decompressor
Recently, some distros have started shipping versions of gcc which default to -march=i686. This breaks building kernels for pre-i686 machines, even if they have been selected in Kconfig, due to the generation of CMOV instructions.
There isn't enough benefit to try to preserve the generation of these instructions even when selected, so simply force -march=i386 for the decompressor when building a 32-bit kernel.
Reported-and-tested-by: Chris Rankin <rankincj@yahoo.com> Signed-off-by: H. Peter Anvin <hpa@zytor.com> LKML-Reference: <219280.97558.qm@web52907.mail.re2.yahoo.com> --- arch/x86/boot/compressed/Makefile | 1 + 1 files changed, 1 insertions(+), 0 deletions(-)
diff --git a/arch/x86/boot/compressed/Makefile b/arch/x86/boot/compressed/Makefile index f8ed065..f25bbd3 100644 --- a/arch/x86/boot/compressed/Makefile +++ b/arch/x86/boot/compressed/Makefile @@ -9,6 +9,7 @@ targets := vmlinux.lds vmlinux vmlinux.bin vmlinux.bin.gz vmlinux.bin.bz2 vmlinu KBUILD_CFLAGS := -m$(BITS) -D__KERNEL__ $(LINUX_INCLUDE) -O2 KBUILD_CFLAGS += -fno-strict-aliasing -fPIC KBUILD_CFLAGS += -DDISABLE_BRANCH_PROFILING +cflags-$(CONFIG_X86_32) := -march=i386 cflags-$(CONFIG_X86_64) := -mcmodel=small KBUILD_CFLAGS += $(cflags-y) KBUILD_CFLAGS += $(call cc-option,-ffreestanding)
| |