-ifeq ($(CONFIG_HOST_2G_2G), y)
-TOP_ADDR = 0x80000000
-else
-TOP_ADDR = 0xc0000000
-endif
-
-CFLAGS += -U__$(SUBARCH)__ -U$(SUBARCH)
-ELF_ARCH = $(SUBARCH)
-ELF_FORMAT = elf32-$(SUBARCH)
-
-OBJCOPYFLAGS := -O binary -R .note -R .comment -S
-LDFLAGS_BLOB := --format binary --oformat elf32-i386
-
-SYS_DIR := $(ARCH_DIR)/include/sysdep-i386
-SYS_UTIL_DIR := $(ARCH_DIR)/sys-i386/util
+core-y += arch/um/sys-i386/ arch/i386/crypto/
-SYS_HEADERS = $(SYS_DIR)/sc.h $(SYS_DIR)/thread.h
+TOP_ADDR := $(CONFIG_TOP_ADDR)
-sys_prepare: $(SYS_DIR)/sc.h
-
-prepare: $(SYS_HEADERS)
+ifeq ($(CONFIG_MODE_SKAS),y)
+ ifneq ($(CONFIG_MODE_TT),y)
+ START := 0x8048000
+ endif
+endif
-filechk_$(SYS_DIR)/sc.h := $(SYS_UTIL_DIR)/mk_sc
+LDFLAGS += -m elf_i386
+ELF_ARCH := $(SUBARCH)
+ELF_FORMAT := elf32-$(SUBARCH)
+OBJCOPYFLAGS := -O binary -R .note -R .comment -S
-$(SYS_DIR)/sc.h: $(SYS_UTIL_DIR)/mk_sc
- $(call filechk,$@)
+ifeq ("$(origin SUBARCH)", "command line")
+ifneq ("$(shell uname -m | sed -e s/i.86/i386/)", "$(SUBARCH)")
+CFLAGS += $(call cc-option,-m32)
+AFLAGS += $(call cc-option,-m32)
+LINK-y += $(call cc-option,-m32)
+UML_OBJCOPYFLAGS += -F $(ELF_FORMAT)
-filechk_$(SYS_DIR)/thread.h := $(SYS_UTIL_DIR)/mk_thread
+export LDFLAGS HOSTCFLAGS HOSTLDFLAGS UML_OBJCOPYFLAGS
+endif
+endif
-$(SYS_DIR)/thread.h: $(SYS_UTIL_DIR)/mk_thread
- $(call filechk,$@)
+ARCH_KERNEL_DEFINES += -U__$(SUBARCH)__ -U$(SUBARCH)
-$(SYS_UTIL_DIR)/mk_sc: scripts/basic/fixdep include/config/MARKER FORCE ;
- $(Q)$(MAKE) $(build)=$(SYS_UTIL_DIR) $@
+# First of all, tune CFLAGS for the specific CPU. This actually sets cflags-y.
+include $(srctree)/arch/i386/Makefile.cpu
-$(SYS_UTIL_DIR)/mk_thread: $(ARCH_SYMLINKS) $(GEN_HEADERS) sys_prepare FORCE ;
- $(Q)$(MAKE) $(build)=$(SYS_UTIL_DIR) $@
+# prevent gcc from keeping the stack 16 byte aligned. Taken from i386.
+cflags-y += $(call cc-option,-mpreferred-stack-boundary=2)
-$(SYS_UTIL_DIR): include/asm FORCE
- $(Q)$(MAKE) $(build)=$(SYS_UTIL_DIR)
+# Prevent sprintf in nfsd from being converted to strcpy and resulting in
+# an unresolved reference.
+cflags-y += -ffreestanding
-CLEAN_FILES += $(SYS_HEADERS)
+CFLAGS += $(cflags-y)