![Paolo 'Blaisorblade' Giarrusso](/assets/img/avatar_default.png)
Make UML share the underlying cpu-specific tuning done on i386. Actually, for now many config options aren't used a lot - but that can be done later. Also, UML relies on GCC optimization for things like memcpy and such more than i386, so specifying the correct -march and -mtune should be enough. Later, we may want to correct some other stuff. For instance, since FPU context switching, for us, is done (at least partially, i.e. between our kernelspace and userspace) by the host, we may allow usage of FPU operations by GCC. This doesn't hold for kernelspace vs. kernelspace, but we don't support preemption. Signed-off-by: Paolo 'Blaisorblade' Giarrusso <blaisorblade@yahoo.it> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
45 lines
1.1 KiB
Plaintext
45 lines
1.1 KiB
Plaintext
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)
|
|
|
|
ifneq ($(CONFIG_GPROF),y)
|
|
ARCH_CFLAGS += -DUM_FASTCALL
|
|
endif
|
|
|
|
# First of all, tune CFLAGS for the specific CPU. This actually sets cflags-y.
|
|
include $(srctree)/arch/i386/Makefile.cpu
|
|
|
|
# prevent gcc from keeping the stack 16 byte aligned. Taken from i386.
|
|
cflags-y += $(call cc-option,-mpreferred-stack-boundary=2)
|
|
|
|
CFLAGS += $(cflags-y)
|
|
USER_CFLAGS += $(cflags-y)
|
|
|