aboutsummaryrefslogtreecommitdiffstats
path: root/arch/um
diff options
context:
space:
mode:
Diffstat (limited to 'arch/um')
-rw-r--r--arch/um/Makefile23
-rw-r--r--arch/um/Makefile-i3862
-rw-r--r--arch/um/Makefile-x86_641
-rw-r--r--arch/um/include/common-offsets.h1
-rw-r--r--arch/um/include/mem.h12
-rw-r--r--arch/um/include/um_uaccess.h7
-rw-r--r--arch/um/kernel/asm-offsets.c1
-rw-r--r--arch/um/kernel/dyn.lds.S37
-rw-r--r--arch/um/kernel/ksyms.c5
-rw-r--r--arch/um/kernel/mem.c2
-rw-r--r--arch/um/kernel/physmem.c35
-rw-r--r--arch/um/kernel/skas/include/uaccess-skas.h14
-rw-r--r--arch/um/kernel/trap_kern.c6
-rw-r--r--arch/um/kernel/tt/include/uaccess-tt.h14
-rw-r--r--arch/um/kernel/uml.lds.S14
-rw-r--r--arch/um/os-Linux/Makefile3
-rw-r--r--arch/um/os-Linux/elf_aux.c3
-rw-r--r--arch/um/scripts/Makefile.rules5
-rw-r--r--arch/um/sys-i386/kernel-offsets.c1
-rw-r--r--arch/um/sys-x86_64/kernel-offsets.c1
20 files changed, 73 insertions, 114 deletions
diff --git a/arch/um/Makefile b/arch/um/Makefile
index b15f6048caae..154803a22698 100644
--- a/arch/um/Makefile
+++ b/arch/um/Makefile
@@ -103,7 +103,6 @@ endef
103 103
104ifneq ($(KBUILD_SRC),) 104ifneq ($(KBUILD_SRC),)
105$(shell mkdir -p $(ARCH_DIR) && ln -fsn $(srctree)/$(ARCH_DIR)/Kconfig.$(SUBARCH) $(ARCH_DIR)/Kconfig.arch) 105$(shell mkdir -p $(ARCH_DIR) && ln -fsn $(srctree)/$(ARCH_DIR)/Kconfig.$(SUBARCH) $(ARCH_DIR)/Kconfig.arch)
106CLEAN_FILES += $(ARCH_DIR)/Kconfig.arch
107else 106else
108$(shell cd $(ARCH_DIR) && ln -sf Kconfig.$(SUBARCH) Kconfig.arch) 107$(shell cd $(ARCH_DIR) && ln -sf Kconfig.$(SUBARCH) Kconfig.arch)
109endif 108endif
@@ -144,14 +143,14 @@ endef
144#TT or skas makefiles and don't clean skas_ptregs.h. 143#TT or skas makefiles and don't clean skas_ptregs.h.
145CLEAN_FILES += linux x.i gmon.out $(ARCH_DIR)/include/uml-config.h \ 144CLEAN_FILES += linux x.i gmon.out $(ARCH_DIR)/include/uml-config.h \
146 $(GEN_HEADERS) $(ARCH_DIR)/include/skas_ptregs.h \ 145 $(GEN_HEADERS) $(ARCH_DIR)/include/skas_ptregs.h \
147 $(ARCH_DIR)/include/user_constants.h 146 $(ARCH_DIR)/include/user_constants.h $(ARCH_DIR)/Kconfig.arch
148 147
149MRPROPER_FILES += $(SYMLINK_HEADERS) $(ARCH_SYMLINKS) \ 148MRPROPER_FILES += $(SYMLINK_HEADERS) $(ARCH_SYMLINKS) \
150 $(addprefix $(ARCH_DIR)/kernel/,$(KERN_SYMLINKS)) $(ARCH_DIR)/os \ 149 $(addprefix $(ARCH_DIR)/kernel/,$(KERN_SYMLINKS)) $(ARCH_DIR)/os
151 $(ARCH_DIR)/Kconfig.arch
152 150
153archclean: 151archclean:
154 $(Q)$(MAKE) $(clean)=$(ARCH_DIR)/util 152 $(Q)$(MAKE) $(clean)=$(ARCH_DIR)/util
153 $(Q)$(MAKE) $(clean)=$(ARCH_DIR)/os-$(OS)/util
155 @find . \( -name '*.bb' -o -name '*.bbg' -o -name '*.da' \ 154 @find . \( -name '*.bb' -o -name '*.bbg' -o -name '*.da' \
156 -o -name '*.gcov' \) -type f -print | xargs rm -f 155 -o -name '*.gcov' \) -type f -print | xargs rm -f
157 156
@@ -197,6 +196,22 @@ define filechk_umlconfig
197 sed 's/ CONFIG/ UML_CONFIG/' 196 sed 's/ CONFIG/ UML_CONFIG/'
198endef 197endef
199 198
199define filechk_gen-asm-offsets
200 (set -e; \
201 echo "#ifndef __ASM_OFFSETS_H__"; \
202 echo "#define __ASM_OFFSETS_H__"; \
203 echo "/*"; \
204 echo " * DO NOT MODIFY."; \
205 echo " *"; \
206 echo " * This file was generated by arch/$(ARCH)/Makefile"; \
207 echo " *"; \
208 echo " */"; \
209 echo ""; \
210 sed -ne "/^->/{s:^->\([^ ]*\) [\$$#]*\([^ ]*\) \(.*\):#define \1 \2 /* \3 */:; s:->::; p;}"; \
211 echo ""; \
212 echo "#endif" )
213endef
214
200$(ARCH_DIR)/include/uml-config.h : include/linux/autoconf.h 215$(ARCH_DIR)/include/uml-config.h : include/linux/autoconf.h
201 $(call filechk,umlconfig) 216 $(call filechk,umlconfig)
202 217
diff --git a/arch/um/Makefile-i386 b/arch/um/Makefile-i386
index a777e57dbf89..1ab431a53ac3 100644
--- a/arch/um/Makefile-i386
+++ b/arch/um/Makefile-i386
@@ -27,7 +27,7 @@ export LDFLAGS HOSTCFLAGS HOSTLDFLAGS UML_OBJCOPYFLAGS
27endif 27endif
28endif 28endif
29 29
30CFLAGS += -U__$(SUBARCH)__ -U$(SUBARCH) $(STUB_CFLAGS) 30CFLAGS += -U__$(SUBARCH)__ -U$(SUBARCH)
31 31
32ifneq ($(CONFIG_GPROF),y) 32ifneq ($(CONFIG_GPROF),y)
33ARCH_CFLAGS += -DUM_FASTCALL 33ARCH_CFLAGS += -DUM_FASTCALL
diff --git a/arch/um/Makefile-x86_64 b/arch/um/Makefile-x86_64
index baddb5d64ca5..436abbba409b 100644
--- a/arch/um/Makefile-x86_64
+++ b/arch/um/Makefile-x86_64
@@ -8,6 +8,7 @@ START := 0x60000000
8#it's needed for headers to work! 8#it's needed for headers to work!
9CFLAGS += -U__$(SUBARCH)__ -fno-builtin 9CFLAGS += -U__$(SUBARCH)__ -fno-builtin
10USER_CFLAGS += -fno-builtin 10USER_CFLAGS += -fno-builtin
11CHECKFLAGS += -m64
11 12
12ELF_ARCH := i386:x86-64 13ELF_ARCH := i386:x86-64
13ELF_FORMAT := elf64-x86-64 14ELF_FORMAT := elf64-x86-64
diff --git a/arch/um/include/common-offsets.h b/arch/um/include/common-offsets.h
index d705daa2d854..0aa620970adb 100644
--- a/arch/um/include/common-offsets.h
+++ b/arch/um/include/common-offsets.h
@@ -12,3 +12,4 @@ DEFINE_STR(UM_KERN_WARNING, KERN_WARNING);
12DEFINE_STR(UM_KERN_NOTICE, KERN_NOTICE); 12DEFINE_STR(UM_KERN_NOTICE, KERN_NOTICE);
13DEFINE_STR(UM_KERN_INFO, KERN_INFO); 13DEFINE_STR(UM_KERN_INFO, KERN_INFO);
14DEFINE_STR(UM_KERN_DEBUG, KERN_DEBUG); 14DEFINE_STR(UM_KERN_DEBUG, KERN_DEBUG);
15DEFINE(HOST_ELF_CLASS, ELF_CLASS);
diff --git a/arch/um/include/mem.h b/arch/um/include/mem.h
index 99d3ad4a03e5..e8ff0d8fa610 100644
--- a/arch/um/include/mem.h
+++ b/arch/um/include/mem.h
@@ -13,7 +13,17 @@ extern int physmem_subst_mapping(void *virt, int fd, __u64 offset, int w);
13extern int is_remapped(void *virt); 13extern int is_remapped(void *virt);
14extern int physmem_remove_mapping(void *virt); 14extern int physmem_remove_mapping(void *virt);
15extern void physmem_forget_descriptor(int fd); 15extern void physmem_forget_descriptor(int fd);
16extern unsigned long to_phys(void *virt); 16
17extern unsigned long uml_physmem;
18static inline unsigned long to_phys(void *virt)
19{
20 return(((unsigned long) virt) - uml_physmem);
21}
22
23static inline void *to_virt(unsigned long phys)
24{
25 return((void *) uml_physmem + phys);
26}
17 27
18#endif 28#endif
19 29
diff --git a/arch/um/include/um_uaccess.h b/arch/um/include/um_uaccess.h
index 6e348cb6de24..84c0868cd561 100644
--- a/arch/um/include/um_uaccess.h
+++ b/arch/um/include/um_uaccess.h
@@ -20,13 +20,6 @@
20#define access_ok(type, addr, size) \ 20#define access_ok(type, addr, size) \
21 CHOOSE_MODE_PROC(access_ok_tt, access_ok_skas, type, addr, size) 21 CHOOSE_MODE_PROC(access_ok_tt, access_ok_skas, type, addr, size)
22 22
23/* this function will go away soon - use access_ok() instead */
24static inline int __deprecated verify_area(int type, const void __user *addr, unsigned long size)
25{
26 return (CHOOSE_MODE_PROC(verify_area_tt, verify_area_skas, type, addr,
27 size));
28}
29
30static inline int copy_from_user(void *to, const void __user *from, int n) 23static inline int copy_from_user(void *to, const void __user *from, int n)
31{ 24{
32 return(CHOOSE_MODE_PROC(copy_from_user_tt, copy_from_user_skas, to, 25 return(CHOOSE_MODE_PROC(copy_from_user_tt, copy_from_user_skas, to,
diff --git a/arch/um/kernel/asm-offsets.c b/arch/um/kernel/asm-offsets.c
new file mode 100644
index 000000000000..c13a64a288f6
--- /dev/null
+++ b/arch/um/kernel/asm-offsets.c
@@ -0,0 +1 @@
/* Dummy file to make kbuild happy - unused! */
diff --git a/arch/um/kernel/dyn.lds.S b/arch/um/kernel/dyn.lds.S
index 3942a5f245de..2517ecb8bf27 100644
--- a/arch/um/kernel/dyn.lds.S
+++ b/arch/um/kernel/dyn.lds.S
@@ -146,37 +146,8 @@ SECTIONS
146 } 146 }
147 _end = .; 147 _end = .;
148 PROVIDE (end = .); 148 PROVIDE (end = .);
149 /* Stabs debugging sections. */ 149
150 .stab 0 : { *(.stab) } 150 STABS_DEBUG
151 .stabstr 0 : { *(.stabstr) } 151
152 .stab.excl 0 : { *(.stab.excl) } 152 DWARF_DEBUG
153 .stab.exclstr 0 : { *(.stab.exclstr) }
154 .stab.index 0 : { *(.stab.index) }
155 .stab.indexstr 0 : { *(.stab.indexstr) }
156 .comment 0 : { *(.comment) }
157 /* DWARF debug sections.
158 Symbols in the DWARF debugging sections are relative to the beginning
159 of the section so we begin them at 0. */
160 /* DWARF 1 */
161 .debug 0 : { *(.debug) }
162 .line 0 : { *(.line) }
163 /* GNU DWARF 1 extensions */
164 .debug_srcinfo 0 : { *(.debug_srcinfo) }
165 .debug_sfnames 0 : { *(.debug_sfnames) }
166 /* DWARF 1.1 and DWARF 2 */
167 .debug_aranges 0 : { *(.debug_aranges) }
168 .debug_pubnames 0 : { *(.debug_pubnames) }
169 /* DWARF 2 */
170 .debug_info 0 : { *(.debug_info .gnu.linkonce.wi.*) }
171 .debug_abbrev 0 : { *(.debug_abbrev) }
172 .debug_line 0 : { *(.debug_line) }
173 .debug_frame 0 : { *(.debug_frame) }
174 .debug_str 0 : { *(.debug_str) }
175 .debug_loc 0 : { *(.debug_loc) }
176 .debug_macinfo 0 : { *(.debug_macinfo) }
177 /* SGI/MIPS DWARF 2 extensions */
178 .debug_weaknames 0 : { *(.debug_weaknames) }
179 .debug_funcnames 0 : { *(.debug_funcnames) }
180 .debug_typenames 0 : { *(.debug_typenames) }
181 .debug_varnames 0 : { *(.debug_varnames) }
182} 153}
diff --git a/arch/um/kernel/ksyms.c b/arch/um/kernel/ksyms.c
index 32d3076dd220..a97a72e516aa 100644
--- a/arch/um/kernel/ksyms.c
+++ b/arch/um/kernel/ksyms.c
@@ -34,14 +34,9 @@ EXPORT_SYMBOL(host_task_size);
34EXPORT_SYMBOL(arch_validate); 34EXPORT_SYMBOL(arch_validate);
35EXPORT_SYMBOL(get_kmem_end); 35EXPORT_SYMBOL(get_kmem_end);
36 36
37EXPORT_SYMBOL(page_to_phys);
38EXPORT_SYMBOL(phys_to_page);
39EXPORT_SYMBOL(high_physmem); 37EXPORT_SYMBOL(high_physmem);
40EXPORT_SYMBOL(empty_zero_page); 38EXPORT_SYMBOL(empty_zero_page);
41EXPORT_SYMBOL(um_virt_to_phys); 39EXPORT_SYMBOL(um_virt_to_phys);
42EXPORT_SYMBOL(__virt_to_page);
43EXPORT_SYMBOL(to_phys);
44EXPORT_SYMBOL(to_virt);
45EXPORT_SYMBOL(mode_tt); 40EXPORT_SYMBOL(mode_tt);
46EXPORT_SYMBOL(handle_page_fault); 41EXPORT_SYMBOL(handle_page_fault);
47EXPORT_SYMBOL(find_iomem); 42EXPORT_SYMBOL(find_iomem);
diff --git a/arch/um/kernel/mem.c b/arch/um/kernel/mem.c
index 5597bd39e6b5..64fa062cc119 100644
--- a/arch/um/kernel/mem.c
+++ b/arch/um/kernel/mem.c
@@ -196,7 +196,7 @@ static void init_highmem(void)
196 196
197static void __init fixaddr_user_init( void) 197static void __init fixaddr_user_init( void)
198{ 198{
199#if CONFIG_ARCH_REUSE_HOST_VSYSCALL_AREA 199#ifdef CONFIG_ARCH_REUSE_HOST_VSYSCALL_AREA
200 long size = FIXADDR_USER_END - FIXADDR_USER_START; 200 long size = FIXADDR_USER_END - FIXADDR_USER_START;
201 pgd_t *pgd; 201 pgd_t *pgd;
202 pud_t *pud; 202 pud_t *pud;
diff --git a/arch/um/kernel/physmem.c b/arch/um/kernel/physmem.c
index a24e3b7f4bf0..ea670fcc8af5 100644
--- a/arch/um/kernel/physmem.c
+++ b/arch/um/kernel/physmem.c
@@ -248,16 +248,6 @@ unsigned long high_physmem;
248 248
249extern unsigned long physmem_size; 249extern unsigned long physmem_size;
250 250
251void *to_virt(unsigned long phys)
252{
253 return((void *) uml_physmem + phys);
254}
255
256unsigned long to_phys(void *virt)
257{
258 return(((unsigned long) virt) - uml_physmem);
259}
260
261int init_maps(unsigned long physmem, unsigned long iomem, unsigned long highmem) 251int init_maps(unsigned long physmem, unsigned long iomem, unsigned long highmem)
262{ 252{
263 struct page *p, *map; 253 struct page *p, *map;
@@ -298,31 +288,6 @@ int init_maps(unsigned long physmem, unsigned long iomem, unsigned long highmem)
298 return(0); 288 return(0);
299} 289}
300 290
301struct page *phys_to_page(const unsigned long phys)
302{
303 return(&mem_map[phys >> PAGE_SHIFT]);
304}
305
306struct page *__virt_to_page(const unsigned long virt)
307{
308 return(&mem_map[__pa(virt) >> PAGE_SHIFT]);
309}
310
311phys_t page_to_phys(struct page *page)
312{
313 return((page - mem_map) << PAGE_SHIFT);
314}
315
316pte_t mk_pte(struct page *page, pgprot_t pgprot)
317{
318 pte_t pte;
319
320 pte_set_val(pte, page_to_phys(page), pgprot);
321 if(pte_present(pte))
322 pte_mknewprot(pte_mknewpage(pte));
323 return(pte);
324}
325
326/* Changed during early boot */ 291/* Changed during early boot */
327static unsigned long kmem_top = 0; 292static unsigned long kmem_top = 0;
328 293
diff --git a/arch/um/kernel/skas/include/uaccess-skas.h b/arch/um/kernel/skas/include/uaccess-skas.h
index cd6c280482cb..6ee3f3902e68 100644
--- a/arch/um/kernel/skas/include/uaccess-skas.h
+++ b/arch/um/kernel/skas/include/uaccess-skas.h
@@ -18,18 +18,18 @@
18 ((unsigned long) (addr) + (size) <= FIXADDR_USER_END) && \ 18 ((unsigned long) (addr) + (size) <= FIXADDR_USER_END) && \
19 ((unsigned long) (addr) + (size) >= (unsigned long)(addr)))) 19 ((unsigned long) (addr) + (size) >= (unsigned long)(addr))))
20 20
21static inline int verify_area_skas(int type, const void * addr, 21static inline int verify_area_skas(int type, const void __user * addr,
22 unsigned long size) 22 unsigned long size)
23{ 23{
24 return(access_ok_skas(type, addr, size) ? 0 : -EFAULT); 24 return(access_ok_skas(type, addr, size) ? 0 : -EFAULT);
25} 25}
26 26
27extern int copy_from_user_skas(void *to, const void *from, int n); 27extern int copy_from_user_skas(void *to, const void __user *from, int n);
28extern int copy_to_user_skas(void *to, const void *from, int n); 28extern int copy_to_user_skas(void __user *to, const void *from, int n);
29extern int strncpy_from_user_skas(char *dst, const char *src, int count); 29extern int strncpy_from_user_skas(char *dst, const char __user *src, int count);
30extern int __clear_user_skas(void *mem, int len); 30extern int __clear_user_skas(void __user *mem, int len);
31extern int clear_user_skas(void *mem, int len); 31extern int clear_user_skas(void __user *mem, int len);
32extern int strnlen_user_skas(const void *str, int len); 32extern int strnlen_user_skas(const void __user *str, int len);
33 33
34#endif 34#endif
35 35
diff --git a/arch/um/kernel/trap_kern.c b/arch/um/kernel/trap_kern.c
index b5fc89fe9eab..87cc6fd76ced 100644
--- a/arch/um/kernel/trap_kern.c
+++ b/arch/um/kernel/trap_kern.c
@@ -57,7 +57,8 @@ good_area:
57 if(is_write && !(vma->vm_flags & VM_WRITE)) 57 if(is_write && !(vma->vm_flags & VM_WRITE))
58 goto out; 58 goto out;
59 59
60 if(!(vma->vm_flags & (VM_READ | VM_EXEC))) 60 /* Don't require VM_READ|VM_EXEC for write faults! */
61 if(!is_write && !(vma->vm_flags & (VM_READ | VM_EXEC)))
61 goto out; 62 goto out;
62 63
63 do { 64 do {
@@ -84,8 +85,7 @@ survive:
84 pte = pte_offset_kernel(pmd, address); 85 pte = pte_offset_kernel(pmd, address);
85 } while(!pte_present(*pte)); 86 } while(!pte_present(*pte));
86 err = 0; 87 err = 0;
87 *pte = pte_mkyoung(*pte); 88 WARN_ON(!pte_young(*pte) || (is_write && !pte_dirty(*pte)));
88 if(pte_write(*pte)) *pte = pte_mkdirty(*pte);
89 flush_tlb_page(vma, address); 89 flush_tlb_page(vma, address);
90out: 90out:
91 up_read(&mm->mmap_sem); 91 up_read(&mm->mmap_sem);
diff --git a/arch/um/kernel/tt/include/uaccess-tt.h b/arch/um/kernel/tt/include/uaccess-tt.h
index 3fbb5fe26f49..aa6db384af80 100644
--- a/arch/um/kernel/tt/include/uaccess-tt.h
+++ b/arch/um/kernel/tt/include/uaccess-tt.h
@@ -33,7 +33,7 @@ extern unsigned long uml_physmem;
33 (((unsigned long) (addr) <= ((unsigned long) (addr) + (size))) && \ 33 (((unsigned long) (addr) <= ((unsigned long) (addr) + (size))) && \
34 (under_task_size(addr, size) || is_stack(addr, size)))) 34 (under_task_size(addr, size) || is_stack(addr, size))))
35 35
36static inline int verify_area_tt(int type, const void * addr, 36static inline int verify_area_tt(int type, const void __user * addr,
37 unsigned long size) 37 unsigned long size)
38{ 38{
39 return(access_ok_tt(type, addr, size) ? 0 : -EFAULT); 39 return(access_ok_tt(type, addr, size) ? 0 : -EFAULT);
@@ -50,12 +50,12 @@ extern int __do_clear_user(void *mem, size_t len, void **fault_addr,
50extern int __do_strnlen_user(const char *str, unsigned long n, 50extern int __do_strnlen_user(const char *str, unsigned long n,
51 void **fault_addr, void **fault_catcher); 51 void **fault_addr, void **fault_catcher);
52 52
53extern int copy_from_user_tt(void *to, const void *from, int n); 53extern int copy_from_user_tt(void *to, const void __user *from, int n);
54extern int copy_to_user_tt(void *to, const void *from, int n); 54extern int copy_to_user_tt(void __user *to, const void *from, int n);
55extern int strncpy_from_user_tt(char *dst, const char *src, int count); 55extern int strncpy_from_user_tt(char *dst, const char __user *src, int count);
56extern int __clear_user_tt(void *mem, int len); 56extern int __clear_user_tt(void __user *mem, int len);
57extern int clear_user_tt(void *mem, int len); 57extern int clear_user_tt(void __user *mem, int len);
58extern int strnlen_user_tt(const void *str, int len); 58extern int strnlen_user_tt(const void __user *str, int len);
59 59
60#endif 60#endif
61 61
diff --git a/arch/um/kernel/uml.lds.S b/arch/um/kernel/uml.lds.S
index b03326d391c9..af11915ce0a8 100644
--- a/arch/um/kernel/uml.lds.S
+++ b/arch/um/kernel/uml.lds.S
@@ -93,14 +93,10 @@ SECTIONS
93 *(.bss) 93 *(.bss)
94 *(COMMON) 94 *(COMMON)
95 } 95 }
96 _end = . ; 96 _end = .;
97 PROVIDE (end = .); 97 PROVIDE (end = .);
98 /* Stabs debugging sections. */ 98
99 .stab 0 : { *(.stab) } 99 STABS_DEBUG
100 .stabstr 0 : { *(.stabstr) } 100
101 .stab.excl 0 : { *(.stab.excl) } 101 DWARF_DEBUG
102 .stab.exclstr 0 : { *(.stab.exclstr) }
103 .stab.index 0 : { *(.stab.index) }
104 .stab.indexstr 0 : { *(.stab.indexstr) }
105 .comment 0 : { *(.comment) }
106} 102}
diff --git a/arch/um/os-Linux/Makefile b/arch/um/os-Linux/Makefile
index d3c1560e3ed8..7a1662419c0c 100644
--- a/arch/um/os-Linux/Makefile
+++ b/arch/um/os-Linux/Makefile
@@ -9,6 +9,9 @@ obj-y = aio.o elf_aux.o file.o process.o signal.o start_up.o time.o tt.o \
9USER_OBJS := aio.o elf_aux.o file.o process.o signal.o start_up.o time.o tt.o \ 9USER_OBJS := aio.o elf_aux.o file.o process.o signal.o start_up.o time.o tt.o \
10 tty.o 10 tty.o
11 11
12elf_aux.o: $(ARCH_DIR)/kernel-offsets.h
13CFLAGS_elf_aux.o += -I$(objtree)/arch/um
14
12CFLAGS_user_syms.o += -DSUBARCH_$(SUBARCH) 15CFLAGS_user_syms.o += -DSUBARCH_$(SUBARCH)
13 16
14HAVE_AIO_ABI := $(shell [ -r /usr/include/linux/aio_abi.h ] && \ 17HAVE_AIO_ABI := $(shell [ -r /usr/include/linux/aio_abi.h ] && \
diff --git a/arch/um/os-Linux/elf_aux.c b/arch/um/os-Linux/elf_aux.c
index 4cca3e9c23fe..1399520a8588 100644
--- a/arch/um/os-Linux/elf_aux.c
+++ b/arch/um/os-Linux/elf_aux.c
@@ -12,8 +12,9 @@
12#include "init.h" 12#include "init.h"
13#include "elf_user.h" 13#include "elf_user.h"
14#include "mem_user.h" 14#include "mem_user.h"
15#include <kernel-offsets.h>
15 16
16#if ELF_CLASS == ELFCLASS32 17#if HOST_ELF_CLASS == ELFCLASS32
17typedef Elf32_auxv_t elf_auxv_t; 18typedef Elf32_auxv_t elf_auxv_t;
18#else 19#else
19typedef Elf64_auxv_t elf_auxv_t; 20typedef Elf64_auxv_t elf_auxv_t;
diff --git a/arch/um/scripts/Makefile.rules b/arch/um/scripts/Makefile.rules
index 17f305b6bade..59a1291f477e 100644
--- a/arch/um/scripts/Makefile.rules
+++ b/arch/um/scripts/Makefile.rules
@@ -9,6 +9,11 @@ USER_OBJS := $(foreach file,$(USER_OBJS),$(obj)/$(file))
9 9
10$(USER_OBJS) : c_flags = -Wp,-MD,$(depfile) $(USER_CFLAGS) \ 10$(USER_OBJS) : c_flags = -Wp,-MD,$(depfile) $(USER_CFLAGS) \
11 $(CFLAGS_$(notdir $@)) 11 $(CFLAGS_$(notdir $@))
12$(USER_OBJS): cmd_checksrc =
13$(USER_OBJS): quiet_cmd_checksrc =
14$(USER_OBJS): cmd_force_checksrc =
15$(USER_OBJS): quiet_cmd_force_checksrc =
16
12 17
13# The stubs and unmap.o can't try to call mcount or update basic block data 18# The stubs and unmap.o can't try to call mcount or update basic block data
14define unprofile 19define unprofile
diff --git a/arch/um/sys-i386/kernel-offsets.c b/arch/um/sys-i386/kernel-offsets.c
index 9f8ecd1fdd96..a1070af2bcd8 100644
--- a/arch/um/sys-i386/kernel-offsets.c
+++ b/arch/um/sys-i386/kernel-offsets.c
@@ -2,6 +2,7 @@
2#include <linux/stddef.h> 2#include <linux/stddef.h>
3#include <linux/sched.h> 3#include <linux/sched.h>
4#include <linux/time.h> 4#include <linux/time.h>
5#include <linux/elf.h>
5#include <asm/page.h> 6#include <asm/page.h>
6 7
7#define DEFINE(sym, val) \ 8#define DEFINE(sym, val) \
diff --git a/arch/um/sys-x86_64/kernel-offsets.c b/arch/um/sys-x86_64/kernel-offsets.c
index 220e875cbe29..998541eade41 100644
--- a/arch/um/sys-x86_64/kernel-offsets.c
+++ b/arch/um/sys-x86_64/kernel-offsets.c
@@ -2,6 +2,7 @@
2#include <linux/stddef.h> 2#include <linux/stddef.h>
3#include <linux/sched.h> 3#include <linux/sched.h>
4#include <linux/time.h> 4#include <linux/time.h>
5#include <linux/elf.h>
5#include <asm/page.h> 6#include <asm/page.h>
6 7
7#define DEFINE(sym, val) \ 8#define DEFINE(sym, val) \