diff options
| -rw-r--r-- | arch/um/Makefile | 11 | ||||
| -rw-r--r-- | arch/um/Makefile-i386 | 31 | ||||
| -rw-r--r-- | arch/um/Makefile-x86_64 | 6 | ||||
| -rw-r--r-- | arch/um/scripts/Makefile.unmap | 4 |
4 files changed, 31 insertions, 21 deletions
diff --git a/arch/um/Makefile b/arch/um/Makefile index 6a7a9f43cdef..eb4ac403bd93 100644 --- a/arch/um/Makefile +++ b/arch/um/Makefile | |||
| @@ -51,11 +51,6 @@ MRPROPER_DIRS += $(ARCH_DIR)/include2 | |||
| 51 | endif | 51 | endif |
| 52 | SYS_DIR := $(ARCH_DIR)/include/sysdep-$(SUBARCH) | 52 | SYS_DIR := $(ARCH_DIR)/include/sysdep-$(SUBARCH) |
| 53 | 53 | ||
| 54 | include $(srctree)/$(ARCH_DIR)/Makefile-$(SUBARCH) | ||
| 55 | |||
| 56 | core-y += $(SUBARCH_CORE) | ||
| 57 | libs-y += $(SUBARCH_LIBS) | ||
| 58 | |||
| 59 | # -Dvmap=kernel_vmap affects everything, and prevents anything from | 54 | # -Dvmap=kernel_vmap affects everything, and prevents anything from |
| 60 | # referencing the libpcap.o symbol so named. | 55 | # referencing the libpcap.o symbol so named. |
| 61 | 56 | ||
| @@ -64,7 +59,7 @@ CFLAGS += $(CFLAGS-y) -D__arch_um__ -DSUBARCH=\"$(SUBARCH)\" \ | |||
| 64 | 59 | ||
| 65 | USER_CFLAGS := $(patsubst -I%,,$(CFLAGS)) | 60 | USER_CFLAGS := $(patsubst -I%,,$(CFLAGS)) |
| 66 | USER_CFLAGS := $(patsubst -D__KERNEL__,,$(USER_CFLAGS)) $(ARCH_INCLUDE) \ | 61 | USER_CFLAGS := $(patsubst -D__KERNEL__,,$(USER_CFLAGS)) $(ARCH_INCLUDE) \ |
| 67 | $(MODE_INCLUDE) $(ARCH_USER_CFLAGS) | 62 | $(MODE_INCLUDE) |
| 68 | 63 | ||
| 69 | # -Derrno=kernel_errno - This turns all kernel references to errno into | 64 | # -Derrno=kernel_errno - This turns all kernel references to errno into |
| 70 | # kernel_errno to separate them from the libc errno. This allows -fno-common | 65 | # kernel_errno to separate them from the libc errno. This allows -fno-common |
| @@ -74,6 +69,8 @@ USER_CFLAGS := $(patsubst -D__KERNEL__,,$(USER_CFLAGS)) $(ARCH_INCLUDE) \ | |||
| 74 | CFLAGS += -Derrno=kernel_errno -Dsigprocmask=kernel_sigprocmask | 69 | CFLAGS += -Derrno=kernel_errno -Dsigprocmask=kernel_sigprocmask |
| 75 | CFLAGS += $(call cc-option,-fno-unit-at-a-time,) | 70 | CFLAGS += $(call cc-option,-fno-unit-at-a-time,) |
| 76 | 71 | ||
| 72 | include $(srctree)/$(ARCH_DIR)/Makefile-$(SUBARCH) | ||
| 73 | |||
| 77 | #This will adjust *FLAGS accordingly to the platform. | 74 | #This will adjust *FLAGS accordingly to the platform. |
| 78 | include $(srctree)/$(ARCH_DIR)/Makefile-os-$(OS) | 75 | include $(srctree)/$(ARCH_DIR)/Makefile-os-$(OS) |
| 79 | 76 | ||
| @@ -132,7 +129,7 @@ CPPFLAGS_vmlinux.lds = -U$(SUBARCH) \ | |||
| 132 | #The wrappers will select whether using "malloc" or the kernel allocator. | 129 | #The wrappers will select whether using "malloc" or the kernel allocator. |
| 133 | LINK_WRAPS = -Wl,--wrap,malloc -Wl,--wrap,free -Wl,--wrap,calloc | 130 | LINK_WRAPS = -Wl,--wrap,malloc -Wl,--wrap,free -Wl,--wrap,calloc |
| 134 | 131 | ||
| 135 | CFLAGS_vmlinux = $(LINK-y) $(LINK_WRAPS) | 132 | CFLAGS_vmlinux := $(LINK-y) $(LINK_WRAPS) |
| 136 | define cmd_vmlinux__ | 133 | define cmd_vmlinux__ |
| 137 | $(CC) $(CFLAGS_vmlinux) -o $@ \ | 134 | $(CC) $(CFLAGS_vmlinux) -o $@ \ |
| 138 | -Wl,-T,$(vmlinux-lds) $(vmlinux-init) \ | 135 | -Wl,-T,$(vmlinux-lds) $(vmlinux-init) \ |
diff --git a/arch/um/Makefile-i386 b/arch/um/Makefile-i386 index 301059062a3e..93d0818fa816 100644 --- a/arch/um/Makefile-i386 +++ b/arch/um/Makefile-i386 | |||
| @@ -1,4 +1,4 @@ | |||
| 1 | SUBARCH_CORE := arch/um/sys-i386/ arch/i386/crypto/ | 1 | core-y += arch/um/sys-i386/ arch/i386/crypto/ |
| 2 | 2 | ||
| 3 | TOP_ADDR := $(CONFIG_TOP_ADDR) | 3 | TOP_ADDR := $(CONFIG_TOP_ADDR) |
| 4 | 4 | ||
| @@ -8,21 +8,32 @@ ifeq ($(CONFIG_MODE_SKAS),y) | |||
| 8 | endif | 8 | endif |
| 9 | endif | 9 | endif |
| 10 | 10 | ||
| 11 | LDFLAGS += -m elf_i386 | ||
| 12 | ELF_ARCH := $(SUBARCH) | ||
| 13 | ELF_FORMAT := elf32-$(SUBARCH) | ||
| 14 | OBJCOPYFLAGS := -O binary -R .note -R .comment -S | ||
| 15 | |||
| 16 | ifeq ("$(origin SUBARCH)", "command line") | ||
| 17 | ifneq ("$(shell uname -m | sed -e s/i.86/i386/)", "$(SUBARCH)") | ||
| 18 | CFLAGS += $(call cc-option,-m32) | ||
| 19 | USER_CFLAGS += $(call cc-option,-m32) | ||
| 20 | HOSTCFLAGS += $(call cc-option,-m32) | ||
| 21 | HOSTLDFLAGS += $(call cc-option,-m32) | ||
| 22 | AFLAGS += $(call cc-option,-m32) | ||
| 23 | LINK-y += $(call cc-option,-m32) | ||
| 24 | UML_OBJCOPYFLAGS += -F $(ELF_FORMAT) | ||
| 25 | |||
| 26 | export LDFLAGS HOSTCFLAGS HOSTLDFLAGS UML_OBJCOPYFLAGS | ||
| 27 | endif | ||
| 28 | endif | ||
| 29 | |||
| 11 | CFLAGS += -U__$(SUBARCH)__ -U$(SUBARCH) $(STUB_CFLAGS) | 30 | CFLAGS += -U__$(SUBARCH)__ -U$(SUBARCH) $(STUB_CFLAGS) |
| 12 | ARCH_USER_CFLAGS := | ||
| 13 | 31 | ||
| 14 | ifneq ($(CONFIG_GPROF),y) | 32 | ifneq ($(CONFIG_GPROF),y) |
| 15 | ARCH_CFLAGS += -DUM_FASTCALL | 33 | ARCH_CFLAGS += -DUM_FASTCALL |
| 16 | endif | 34 | endif |
| 17 | 35 | ||
| 18 | ELF_ARCH := $(SUBARCH) | 36 | SYS_HEADERS := $(SYS_DIR)/sc.h $(SYS_DIR)/thread.h |
| 19 | ELF_FORMAT := elf32-$(SUBARCH) | ||
| 20 | |||
| 21 | OBJCOPYFLAGS := -O binary -R .note -R .comment -S | ||
| 22 | |||
| 23 | SYS_UTIL_DIR := $(ARCH_DIR)/sys-i386/util | ||
| 24 | |||
| 25 | SYS_HEADERS := $(SYS_DIR)/sc.h $(SYS_DIR)/thread.h | ||
| 26 | 37 | ||
| 27 | prepare: $(SYS_HEADERS) | 38 | prepare: $(SYS_HEADERS) |
| 28 | 39 | ||
diff --git a/arch/um/Makefile-x86_64 b/arch/um/Makefile-x86_64 index d80bd0052e6b..aa2f7174ebca 100644 --- a/arch/um/Makefile-x86_64 +++ b/arch/um/Makefile-x86_64 | |||
| @@ -1,11 +1,13 @@ | |||
| 1 | # Copyright 2003 - 2004 Pathscale, Inc | 1 | # Copyright 2003 - 2004 Pathscale, Inc |
| 2 | # Released under the GPL | 2 | # Released under the GPL |
| 3 | 3 | ||
| 4 | SUBARCH_LIBS := arch/um/sys-x86_64/ | 4 | libs-y += arch/um/sys-x86_64/ |
| 5 | START := 0x60000000 | 5 | START := 0x60000000 |
| 6 | 6 | ||
| 7 | #We #undef __x86_64__ for kernelspace, not for userspace where | ||
| 8 | #it's needed for headers to work! | ||
| 7 | CFLAGS += -U__$(SUBARCH)__ -fno-builtin $(STUB_CFLAGS) | 9 | CFLAGS += -U__$(SUBARCH)__ -fno-builtin $(STUB_CFLAGS) |
| 8 | ARCH_USER_CFLAGS := -D__x86_64__ | 10 | USER_CFLAGS += -fno-builtin |
| 9 | 11 | ||
| 10 | ELF_ARCH := i386:x86-64 | 12 | ELF_ARCH := i386:x86-64 |
| 11 | ELF_FORMAT := elf64-x86-64 | 13 | ELF_FORMAT := elf64-x86-64 |
diff --git a/arch/um/scripts/Makefile.unmap b/arch/um/scripts/Makefile.unmap index 37a8f9765295..802d027a1e13 100644 --- a/arch/um/scripts/Makefile.unmap +++ b/arch/um/scripts/Makefile.unmap | |||
| @@ -12,8 +12,8 @@ $(obj)/unmap.o: _c_flags = $(call unprofile,$(CFLAGS)) | |||
| 12 | 12 | ||
| 13 | quiet_cmd_wrapld = LD $@ | 13 | quiet_cmd_wrapld = LD $@ |
| 14 | define cmd_wrapld | 14 | define cmd_wrapld |
| 15 | $(LD) -r -o $(obj)/unmap_tmp.o $< $(shell $(CC) -print-file-name=libc.a); \ | 15 | $(LD) $(LDFLAGS) -r -o $(obj)/unmap_tmp.o $< $(shell $(CC) $(CFLAGS) -print-file-name=libc.a); \ |
| 16 | $(OBJCOPY) $(obj)/unmap_tmp.o $@ -G switcheroo | 16 | $(OBJCOPY) $(UML_OBJCOPYFLAGS) $(obj)/unmap_tmp.o $@ -G switcheroo |
| 17 | endef | 17 | endef |
| 18 | 18 | ||
| 19 | $(obj)/unmap_fin.o : $(obj)/unmap.o FORCE | 19 | $(obj)/unmap_fin.o : $(obj)/unmap.o FORCE |
