20d0021394
This patch makes the command: make ARCH=um SUBARCH=i386 work on x86_64 hosts (with support for building 32-bit binaries). This is especially needed since 64-bit UMLs don't support 32-bit emulation for guest binaries, currently. This has been tested in all possible cases and works. Only exception is that I've built but not tested a 64-bit binary, because I hadn't a 64-bit filesystem available. Signed-off-by: Paolo 'Blaisorblade' Giarrusso <blaisorblade@yahoo.it> Cc: Jeff Dike <jdike@addtoit.com> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
55 lines
1.4 KiB
Text
55 lines
1.4 KiB
Text
core-y += arch/um/sys-i386/ arch/i386/crypto/
|
|
|
|
TOP_ADDR := $(CONFIG_TOP_ADDR)
|
|
|
|
ifeq ($(CONFIG_MODE_SKAS),y)
|
|
ifneq ($(CONFIG_MODE_TT),y)
|
|
START := 0x8048000
|
|
endif
|
|
endif
|
|
|
|
LDFLAGS += -m elf_i386
|
|
ELF_ARCH := $(SUBARCH)
|
|
ELF_FORMAT := elf32-$(SUBARCH)
|
|
OBJCOPYFLAGS := -O binary -R .note -R .comment -S
|
|
|
|
ifeq ("$(origin SUBARCH)", "command line")
|
|
ifneq ("$(shell uname -m | sed -e s/i.86/i386/)", "$(SUBARCH)")
|
|
CFLAGS += $(call cc-option,-m32)
|
|
USER_CFLAGS += $(call cc-option,-m32)
|
|
HOSTCFLAGS += $(call cc-option,-m32)
|
|
HOSTLDFLAGS += $(call cc-option,-m32)
|
|
AFLAGS += $(call cc-option,-m32)
|
|
LINK-y += $(call cc-option,-m32)
|
|
UML_OBJCOPYFLAGS += -F $(ELF_FORMAT)
|
|
|
|
export LDFLAGS HOSTCFLAGS HOSTLDFLAGS UML_OBJCOPYFLAGS
|
|
endif
|
|
endif
|
|
|
|
CFLAGS += -U__$(SUBARCH)__ -U$(SUBARCH) $(STUB_CFLAGS)
|
|
|
|
ifneq ($(CONFIG_GPROF),y)
|
|
ARCH_CFLAGS += -DUM_FASTCALL
|
|
endif
|
|
|
|
SYS_HEADERS := $(SYS_DIR)/sc.h $(SYS_DIR)/thread.h
|
|
|
|
prepare: $(SYS_HEADERS)
|
|
|
|
$(SYS_DIR)/sc.h: $(SYS_UTIL_DIR)/mk_sc
|
|
$(call filechk,gen_header)
|
|
|
|
$(SYS_DIR)/thread.h: $(SYS_UTIL_DIR)/mk_thread
|
|
$(call filechk,gen_header)
|
|
|
|
$(SYS_UTIL_DIR)/mk_sc: scripts_basic $(ARCH_DIR)/user-offsets.h FORCE
|
|
$(Q)$(MAKE) $(build)=$(SYS_UTIL_DIR) $@
|
|
|
|
$(SYS_UTIL_DIR)/mk_thread: scripts_basic $(ARCH_DIR)/kernel-offsets.h FORCE
|
|
$(Q)$(MAKE) $(build)=$(SYS_UTIL_DIR) $@
|
|
|
|
$(SYS_UTIL_DIR): scripts_basic include/asm FORCE
|
|
$(Q)$(MAKE) $(build)=$(SYS_UTIL_DIR)
|
|
|
|
CLEAN_FILES += $(SYS_HEADERS)
|