diff options
author | H. Peter Anvin <hpa@zytor.com> | 2009-12-25 15:40:38 -0800 |
---|---|---|
committer | H. Peter Anvin <hpa@zytor.com> | 2009-12-25 15:40:38 -0800 |
commit | 17a2a9b57a9a7d2fd8f97df951b5e63e0bd56ef5 (patch) | |
tree | 4835ed4adac9ab7a4ee6e550557f71fd823dc70c /arch/x86/boot | |
parent | 8bee738bb1979c8bf7b42716b772522ab7d26b0c (diff) | |
download | op-kernel-dev-17a2a9b57a9a7d2fd8f97df951b5e63e0bd56ef5.zip op-kernel-dev-17a2a9b57a9a7d2fd8f97df951b5e63e0bd56ef5.tar.gz |
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>
Diffstat (limited to 'arch/x86/boot')
-rw-r--r-- | 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) |