core-y += arch/x86/crypto/

ifeq ($(CONFIG_X86_32),y)
START := 0x8048000

LDFLAGS			+= -m elf_i386
ELF_ARCH		:= i386
ELF_FORMAT 		:= elf32-i386
CHECKFLAGS	+= -D__i386__

ifeq ("$(origin SUBARCH)", "command line")
ifneq ("$(shell uname -m | sed -e s/i.86/i386/)", "$(SUBARCH)")
KBUILD_CFLAGS		+= $(call cc-option,-m32)
KBUILD_AFLAGS		+= $(call cc-option,-m32)
LINK-y			+= $(call cc-option,-m32)

export LDFLAGS
endif
endif

# First of all, tune CFLAGS for the specific CPU. This actually sets cflags-y.
include $(srctree)/arch/x86/Makefile_32.cpu

# prevent gcc from keeping the stack 16 byte aligned. Taken from i386.
cflags-y += $(call cc-option,-mpreferred-stack-boundary=2)

# Prevent sprintf in nfsd from being converted to strcpy and resulting in
# an unresolved reference.
cflags-y += -ffreestanding

# Disable unit-at-a-time mode on pre-gcc-4.0 compilers, it makes gcc use
# a lot more stack due to the lack of sharing of stacklots.  Also, gcc
# 4.3.0 needs -funit-at-a-time for extern inline functions.
KBUILD_CFLAGS += $(shell if [ $(call cc-version) -lt 0400 ] ; then \
			echo $(call cc-option,-fno-unit-at-a-time); \
			else echo $(call cc-option,-funit-at-a-time); fi ;)

KBUILD_CFLAGS += $(cflags-y)

else

START := 0x60000000

KBUILD_CFLAGS += -fno-builtin -m64 

CHECKFLAGS  += -m64 -D__x86_64__
KBUILD_AFLAGS += -m64
LDFLAGS += -m elf_x86_64
KBUILD_CPPFLAGS += -m64

ELF_ARCH := i386:x86-64
ELF_FORMAT := elf64-x86-64

# Not on all 64-bit distros /lib is a symlink to /lib64. PLD is an example.

LINK-$(CONFIG_LD_SCRIPT_DYN) += -Wl,-rpath,/lib64
LINK-y += -m64

# Do unit-at-a-time unconditionally on x86_64, following the host
KBUILD_CFLAGS += $(call cc-option,-funit-at-a-time)
endif
