diff options
author | Jeff Dike <jdike@addtoit.com> | 2006-01-11 15:17:23 -0500 |
---|---|---|
committer | Linus Torvalds <torvalds@g5.osdl.org> | 2006-01-11 21:42:09 -0500 |
commit | 4ee189a9260849ebacbdd3caf1fd5eb077fcf6a9 (patch) | |
tree | 016e90e4f3d7da648e3739e08849457ffbc50cfd | |
parent | 10b5aabddd1e8f26fdccc56666ddcad653e02fd6 (diff) |
[PATCH] uml: fix missing KBUILD_BASENAME
2.6.15-mm1 caused kernel-offsets.c to stop compiling with a syntax error in a
header. The problem was with KBUILD_BASENAME, which didn't get a definition
with the by-hand compilation in the main UML Makefile.
This was OK before since the expansion was syntactically the same as the
KBUILD_BASENAME token. With -mm1, the expansion is now a quote-delimited
string, so there needs to be a definition of it.
Since kernel-offsets.c is basically the same as other arches' asm-offsets.c,
and those seem to build OK, this patch turns kernel-offsets.c into
asm-offsets.c. kernel-offsets.c is in arch/um/sys-$(SUBARCH), i.e. sys-i386
and sys-x86_64, while kbuild expects it to be in arch/um/kernel.
kernel-offsets.c is moved to
arch/um/include/sysdep-$(SUBARCH)/kernel-offsets.h, which is included by
arch/um/kernel/asm-offsets.c. With that, include/asm-um/asm-offsets.h is
generated automatically. kernel-offsets.h continues to exist because it needs
to be accessible to userspace UML code, and include/asm-um isn't. So, a
symlink is made from arch/um/include/kernel-offsets.h to
include/asm-um/asm-offsets.h.
Signed-off-by: Jeff Dike <jdike@addtoit.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
-rw-r--r-- | arch/um/Makefile | 23 | ||||
-rw-r--r-- | arch/um/include/sysdep-i386/kernel-offsets.h (renamed from arch/um/sys-i386/kernel-offsets.c) | 5 | ||||
-rw-r--r-- | arch/um/include/sysdep-x86_64/kernel-offsets.h (renamed from arch/um/sys-x86_64/kernel-offsets.c) | 2 | ||||
-rw-r--r-- | arch/um/kernel/asm-offsets.c | 2 |
4 files changed, 12 insertions, 20 deletions
diff --git a/arch/um/Makefile b/arch/um/Makefile index 1b12feeba368..322972fd064e 100644 --- a/arch/um/Makefile +++ b/arch/um/Makefile | |||
@@ -189,6 +189,12 @@ define filechk_umlconfig | |||
189 | sed 's/ CONFIG/ UML_CONFIG/' | 189 | sed 's/ CONFIG/ UML_CONFIG/' |
190 | endef | 190 | endef |
191 | 191 | ||
192 | $(ARCH_DIR)/include/uml-config.h : include/linux/autoconf.h | ||
193 | $(call filechk,umlconfig) | ||
194 | |||
195 | $(ARCH_DIR)/user-offsets.s: $(ARCH_DIR)/sys-$(SUBARCH)/user-offsets.c | ||
196 | $(CC) $(USER_CFLAGS) -S -o $@ $< | ||
197 | |||
192 | define filechk_gen-asm-offsets | 198 | define filechk_gen-asm-offsets |
193 | (set -e; \ | 199 | (set -e; \ |
194 | echo "/*"; \ | 200 | echo "/*"; \ |
@@ -202,24 +208,13 @@ define filechk_gen-asm-offsets | |||
202 | echo ""; ) | 208 | echo ""; ) |
203 | endef | 209 | endef |
204 | 210 | ||
205 | $(ARCH_DIR)/include/uml-config.h : include/linux/autoconf.h | ||
206 | $(call filechk,umlconfig) | ||
207 | |||
208 | $(ARCH_DIR)/user-offsets.s: $(ARCH_DIR)/sys-$(SUBARCH)/user-offsets.c | ||
209 | $(CC) $(USER_CFLAGS) -S -o $@ $< | ||
210 | |||
211 | $(ARCH_DIR)/include/user_constants.h: $(ARCH_DIR)/user-offsets.s | 211 | $(ARCH_DIR)/include/user_constants.h: $(ARCH_DIR)/user-offsets.s |
212 | $(call filechk,gen-asm-offsets) | 212 | $(call filechk,gen-asm-offsets) |
213 | 213 | ||
214 | CLEAN_FILES += $(ARCH_DIR)/user-offsets.s | 214 | CLEAN_FILES += $(ARCH_DIR)/user-offsets.s |
215 | 215 | ||
216 | $(ARCH_DIR)/kernel-offsets.s: $(ARCH_DIR)/sys-$(SUBARCH)/kernel-offsets.c \ | 216 | $(ARCH_DIR)/include/kern_constants.h: |
217 | archprepare | 217 | @echo ' SYMLINK $@' |
218 | $(CC) $(CFLAGS) $(NOSTDINC_FLAGS) $(CPPFLAGS) -S -o $@ $< | 218 | $(Q) ln -sf ../../../include/asm-um/asm-offsets.h $@ |
219 | |||
220 | $(ARCH_DIR)/include/kern_constants.h: $(ARCH_DIR)/kernel-offsets.s | ||
221 | $(call filechk,gen-asm-offsets) | ||
222 | |||
223 | CLEAN_FILES += $(ARCH_DIR)/kernel-offsets.s | ||
224 | 219 | ||
225 | export SUBARCH USER_CFLAGS OS | 220 | export SUBARCH USER_CFLAGS OS |
diff --git a/arch/um/sys-i386/kernel-offsets.c b/arch/um/include/sysdep-i386/kernel-offsets.h index 35db85057506..82f96c574144 100644 --- a/arch/um/sys-i386/kernel-offsets.c +++ b/arch/um/include/sysdep-i386/kernel-offsets.h | |||
@@ -1,12 +1,9 @@ | |||
1 | #include <linux/config.h> | ||
2 | #include <linux/stddef.h> | 1 | #include <linux/stddef.h> |
3 | #include <linux/sched.h> | 2 | #include <linux/sched.h> |
4 | #include <linux/time.h> | ||
5 | #include <linux/elf.h> | 3 | #include <linux/elf.h> |
6 | #include <asm/page.h> | ||
7 | 4 | ||
8 | #define DEFINE(sym, val) \ | 5 | #define DEFINE(sym, val) \ |
9 | asm volatile("\n->" #sym " %0 " #val : : "i" (val)) | 6 | asm volatile("\n->" #sym " %0 " #val : : "i" (val)) |
10 | 7 | ||
11 | #define STR(x) #x | 8 | #define STR(x) #x |
12 | #define DEFINE_STR(sym, val) asm volatile("\n->" #sym " " STR(val) " " #val: : ) | 9 | #define DEFINE_STR(sym, val) asm volatile("\n->" #sym " " STR(val) " " #val: : ) |
diff --git a/arch/um/sys-x86_64/kernel-offsets.c b/arch/um/include/sysdep-x86_64/kernel-offsets.h index bfcb104b846e..5ce93abd0b54 100644 --- a/arch/um/sys-x86_64/kernel-offsets.c +++ b/arch/um/include/sysdep-x86_64/kernel-offsets.h | |||
@@ -6,7 +6,7 @@ | |||
6 | #include <asm/page.h> | 6 | #include <asm/page.h> |
7 | 7 | ||
8 | #define DEFINE(sym, val) \ | 8 | #define DEFINE(sym, val) \ |
9 | asm volatile("\n->" #sym " %0 " #val : : "i" (val)) | 9 | asm volatile("\n->" #sym " %0 " #val : : "i" (val)) |
10 | 10 | ||
11 | #define DEFINE_STR1(x) #x | 11 | #define DEFINE_STR1(x) #x |
12 | #define DEFINE_STR(sym, val) asm volatile("\n->" #sym " " DEFINE_STR1(val) " " #val: : ) | 12 | #define DEFINE_STR(sym, val) asm volatile("\n->" #sym " " DEFINE_STR1(val) " " #val: : ) |
diff --git a/arch/um/kernel/asm-offsets.c b/arch/um/kernel/asm-offsets.c index c13a64a288f6..91ea538e1612 100644 --- a/arch/um/kernel/asm-offsets.c +++ b/arch/um/kernel/asm-offsets.c | |||
@@ -1 +1 @@ | |||
/* Dummy file to make kbuild happy - unused! */ | #include "sysdep/kernel-offsets.h" | ||