diff options
author | Al Viro <viro@ftp.linux.org.uk> | 2007-10-13 03:16:04 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@woody.linux-foundation.org> | 2007-10-13 12:57:15 -0400 |
commit | 2b8232ce512105e28453f301d1510de8363bccd1 (patch) | |
tree | 13e15a4f629c72b8737e20221998cb1e55e98d58 | |
parent | c4ea43c552ecc9ccc564e11e70d397dbdf09484b (diff) |
minimal build fixes for uml (fallout from x86 merge)
a) include/asm-um/arch can't just point to include/asm-$(SUBARCH) now
b) arch/{i386,x86_64}/crypto are merged now
c) subarch-obj needed changes
d) cpufeature_64.h should pull "cpufeature_32.h", not <asm/cpufeature_32.h>
since it can be included from asm-um/cpufeature.h
e) in case of uml-i386 we need CONFIG_X86_32 for make and gcc, but not
for Kconfig
f) sysctl.c shouldn't do vdso_enabled for uml-i386 (actually, that one
should be registered from corresponding arch/*/kernel/*, with ifdef
going away; that's a separate patch, though).
With that and with Stephen's patch ("[PATCH net-2.6] uml: hard_header fix")
we have uml allmodconfig building both on i386 and amd64.
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
-rw-r--r-- | arch/um/Makefile | 6 | ||||
-rw-r--r-- | arch/um/Makefile-i386 | 8 | ||||
-rw-r--r-- | arch/um/Makefile-x86_64 | 3 | ||||
-rw-r--r-- | arch/um/scripts/Makefile.rules | 2 | ||||
-rw-r--r-- | arch/um/sys-i386/Makefile | 6 | ||||
-rw-r--r-- | arch/um/sys-x86_64/Makefile | 4 | ||||
-rw-r--r-- | include/asm-x86/cpufeature_64.h | 2 | ||||
-rw-r--r-- | kernel/sysctl.c | 2 |
8 files changed, 20 insertions, 13 deletions
diff --git a/arch/um/Makefile b/arch/um/Makefile index 989224f21346..0666729eb976 100644 --- a/arch/um/Makefile +++ b/arch/um/Makefile | |||
@@ -176,9 +176,9 @@ include/asm-um/arch: | |||
176 | @echo ' SYMLINK $@' | 176 | @echo ' SYMLINK $@' |
177 | ifneq ($(KBUILD_SRC),) | 177 | ifneq ($(KBUILD_SRC),) |
178 | $(Q)mkdir -p $(objtree)/include/asm-um | 178 | $(Q)mkdir -p $(objtree)/include/asm-um |
179 | $(Q)ln -fsn $(srctree)/include/asm-$(SUBARCH) include/asm-um/arch | 179 | $(Q)ln -fsn $(srctree)/include/asm-$(HEADER_ARCH) include/asm-um/arch |
180 | else | 180 | else |
181 | $(Q)cd $(TOPDIR)/include/asm-um && ln -sf ../asm-$(SUBARCH) arch | 181 | $(Q)cd $(TOPDIR)/include/asm-um && ln -sf ../asm-$(HEADER_ARCH) arch |
182 | endif | 182 | endif |
183 | 183 | ||
184 | $(objtree)/$(ARCH_DIR)/include: | 184 | $(objtree)/$(ARCH_DIR)/include: |
@@ -232,4 +232,4 @@ $(ARCH_DIR)/include/kern_constants.h: $(objtree)/$(ARCH_DIR)/include | |||
232 | @echo ' SYMLINK $@' | 232 | @echo ' SYMLINK $@' |
233 | $(Q)ln -sf ../../../include/asm-um/asm-offsets.h $@ | 233 | $(Q)ln -sf ../../../include/asm-um/asm-offsets.h $@ |
234 | 234 | ||
235 | export SUBARCH USER_CFLAGS CFLAGS_NO_HARDENING OS | 235 | export SUBARCH USER_CFLAGS CFLAGS_NO_HARDENING OS HEADER_ARCH |
diff --git a/arch/um/Makefile-i386 b/arch/um/Makefile-i386 index c9f1c5b24c9a..60107ed4905b 100644 --- a/arch/um/Makefile-i386 +++ b/arch/um/Makefile-i386 | |||
@@ -1,4 +1,4 @@ | |||
1 | core-y += arch/um/sys-i386/ arch/i386/crypto/ | 1 | core-y += arch/um/sys-i386/ arch/x86/crypto/ |
2 | 2 | ||
3 | TOP_ADDR := $(CONFIG_TOP_ADDR) | 3 | TOP_ADDR := $(CONFIG_TOP_ADDR) |
4 | 4 | ||
@@ -12,6 +12,7 @@ LDFLAGS += -m elf_i386 | |||
12 | ELF_ARCH := $(SUBARCH) | 12 | ELF_ARCH := $(SUBARCH) |
13 | ELF_FORMAT := elf32-$(SUBARCH) | 13 | ELF_FORMAT := elf32-$(SUBARCH) |
14 | OBJCOPYFLAGS := -O binary -R .note -R .comment -S | 14 | OBJCOPYFLAGS := -O binary -R .note -R .comment -S |
15 | HEADER_ARCH := x86 | ||
15 | 16 | ||
16 | ifeq ("$(origin SUBARCH)", "command line") | 17 | ifeq ("$(origin SUBARCH)", "command line") |
17 | ifneq ("$(shell uname -m | sed -e s/i.86/i386/)", "$(SUBARCH)") | 18 | ifneq ("$(shell uname -m | sed -e s/i.86/i386/)", "$(SUBARCH)") |
@@ -24,6 +25,11 @@ export LDFLAGS HOSTCFLAGS HOSTLDFLAGS UML_OBJCOPYFLAGS | |||
24 | endif | 25 | endif |
25 | endif | 26 | endif |
26 | 27 | ||
28 | CFLAGS += -DCONFIG_X86_32 | ||
29 | AFLAGS += -DCONFIG_X86_32 | ||
30 | CONFIG_X86_32 := y | ||
31 | export CONFIG_X86_32 | ||
32 | |||
27 | ARCH_KERNEL_DEFINES += -U__$(SUBARCH)__ -U$(SUBARCH) | 33 | ARCH_KERNEL_DEFINES += -U__$(SUBARCH)__ -U$(SUBARCH) |
28 | 34 | ||
29 | # First of all, tune CFLAGS for the specific CPU. This actually sets cflags-y. | 35 | # First of all, tune CFLAGS for the specific CPU. This actually sets cflags-y. |
diff --git a/arch/um/Makefile-x86_64 b/arch/um/Makefile-x86_64 index 69ecea63fdae..8a00e5f6934c 100644 --- a/arch/um/Makefile-x86_64 +++ b/arch/um/Makefile-x86_64 | |||
@@ -1,7 +1,7 @@ | |||
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 | core-y += arch/um/sys-x86_64/ arch/x86_64/crypto/ | 4 | core-y += arch/um/sys-x86_64/ arch/x86/crypto/ |
5 | START := 0x60000000 | 5 | START := 0x60000000 |
6 | 6 | ||
7 | _extra_flags_ = -fno-builtin -m64 | 7 | _extra_flags_ = -fno-builtin -m64 |
@@ -18,6 +18,7 @@ CPPFLAGS += -m64 | |||
18 | 18 | ||
19 | ELF_ARCH := i386:x86-64 | 19 | ELF_ARCH := i386:x86-64 |
20 | ELF_FORMAT := elf64-x86-64 | 20 | ELF_FORMAT := elf64-x86-64 |
21 | HEADER_ARCH := x86 | ||
21 | 22 | ||
22 | # Not on all 64-bit distros /lib is a symlink to /lib64. PLD is an example. | 23 | # Not on all 64-bit distros /lib is a symlink to /lib64. PLD is an example. |
23 | 24 | ||
diff --git a/arch/um/scripts/Makefile.rules b/arch/um/scripts/Makefile.rules index a9a4b85ca516..bf23dd3e24d0 100644 --- a/arch/um/scripts/Makefile.rules +++ b/arch/um/scripts/Makefile.rules | |||
@@ -28,5 +28,5 @@ endef | |||
28 | 28 | ||
29 | ifdef subarch-obj-y | 29 | ifdef subarch-obj-y |
30 | obj-y += subarch.o | 30 | obj-y += subarch.o |
31 | subarch-y = $(addprefix ../../$(SUBARCH)/,$(subarch-obj-y)) | 31 | subarch-y = $(addprefix ../../$(HEADER_ARCH)/,$(subarch-obj-y)) |
32 | endif | 32 | endif |
diff --git a/arch/um/sys-i386/Makefile b/arch/um/sys-i386/Makefile index d6b3ecd4b77e..a4618b6b85b9 100644 --- a/arch/um/sys-i386/Makefile +++ b/arch/um/sys-i386/Makefile | |||
@@ -4,9 +4,9 @@ obj-y = bug.o bugs.o checksum.o delay.o fault.o ksyms.o ldt.o ptrace.o \ | |||
4 | 4 | ||
5 | obj-$(CONFIG_MODE_SKAS) += stub.o stub_segv.o | 5 | obj-$(CONFIG_MODE_SKAS) += stub.o stub_segv.o |
6 | 6 | ||
7 | subarch-obj-y = lib/bitops.o lib/semaphore.o lib/string.o | 7 | subarch-obj-y = lib/bitops_32.o lib/semaphore_32.o lib/string_32.o |
8 | subarch-obj-$(CONFIG_HIGHMEM) += mm/highmem.o | 8 | subarch-obj-$(CONFIG_HIGHMEM) += mm/highmem_32.o |
9 | subarch-obj-$(CONFIG_MODULES) += kernel/module.o | 9 | subarch-obj-$(CONFIG_MODULES) += kernel/module_32.o |
10 | 10 | ||
11 | USER_OBJS := bugs.o ptrace_user.o sigcontext.o fault.o | 11 | USER_OBJS := bugs.o ptrace_user.o sigcontext.o fault.o |
12 | 12 | ||
diff --git a/arch/um/sys-x86_64/Makefile b/arch/um/sys-x86_64/Makefile index 4d9e5efa6fb9..ea8185d85404 100644 --- a/arch/um/sys-x86_64/Makefile +++ b/arch/um/sys-x86_64/Makefile | |||
@@ -11,8 +11,8 @@ obj-y = bug.o bugs.o delay.o fault.o ldt.o mem.o ptrace.o ptrace_user.o \ | |||
11 | obj-$(CONFIG_MODE_SKAS) += stub.o stub_segv.o | 11 | obj-$(CONFIG_MODE_SKAS) += stub.o stub_segv.o |
12 | obj-$(CONFIG_MODULES) += um_module.o | 12 | obj-$(CONFIG_MODULES) += um_module.o |
13 | 13 | ||
14 | subarch-obj-y = lib/bitops.o lib/csum-partial.o lib/memcpy.o lib/thunk.o | 14 | subarch-obj-y = lib/bitops_64.o lib/csum-partial_64.o lib/memcpy_64.o lib/thunk_64.o |
15 | subarch-obj-$(CONFIG_MODULES) += kernel/module.o | 15 | subarch-obj-$(CONFIG_MODULES) += kernel/module_64.o |
16 | 16 | ||
17 | ldt-y = ../sys-i386/ldt.o | 17 | ldt-y = ../sys-i386/ldt.o |
18 | 18 | ||
diff --git a/include/asm-x86/cpufeature_64.h b/include/asm-x86/cpufeature_64.h index 2983501e8b3e..e18496b7b850 100644 --- a/include/asm-x86/cpufeature_64.h +++ b/include/asm-x86/cpufeature_64.h | |||
@@ -7,7 +7,7 @@ | |||
7 | #ifndef __ASM_X8664_CPUFEATURE_H | 7 | #ifndef __ASM_X8664_CPUFEATURE_H |
8 | #define __ASM_X8664_CPUFEATURE_H | 8 | #define __ASM_X8664_CPUFEATURE_H |
9 | 9 | ||
10 | #include <asm/cpufeature_32.h> | 10 | #include "cpufeature_32.h" |
11 | 11 | ||
12 | #undef cpu_has_vme | 12 | #undef cpu_has_vme |
13 | #define cpu_has_vme 0 | 13 | #define cpu_has_vme 0 |
diff --git a/kernel/sysctl.c b/kernel/sysctl.c index c7314f952647..6c97259e863e 100644 --- a/kernel/sysctl.c +++ b/kernel/sysctl.c | |||
@@ -1053,7 +1053,7 @@ static ctl_table vm_table[] = { | |||
1053 | .strategy = &sysctl_string, | 1053 | .strategy = &sysctl_string, |
1054 | }, | 1054 | }, |
1055 | #endif | 1055 | #endif |
1056 | #if defined(CONFIG_X86_32) || \ | 1056 | #if (defined(CONFIG_X86_32) && !defined(CONFIG_UML))|| \ |
1057 | (defined(CONFIG_SUPERH) && defined(CONFIG_VSYSCALL)) | 1057 | (defined(CONFIG_SUPERH) && defined(CONFIG_VSYSCALL)) |
1058 | { | 1058 | { |
1059 | .ctl_name = VM_VDSO_ENABLED, | 1059 | .ctl_name = VM_VDSO_ENABLED, |