aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJeff Dike <jdike@addtoit.com>2006-01-11 15:17:23 -0500
committerLinus Torvalds <torvalds@g5.osdl.org>2006-01-11 21:42:09 -0500
commit4ee189a9260849ebacbdd3caf1fd5eb077fcf6a9 (patch)
tree016e90e4f3d7da648e3739e08849457ffbc50cfd
parent10b5aabddd1e8f26fdccc56666ddcad653e02fd6 (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/Makefile23
-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.c2
4 files changed, 12 insertions, 20 deletions
diff --git a/arch/um/Makefile b/arch/um/Makefile
index 1b12feeba36..322972fd064 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/'
190endef 190endef
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
192define filechk_gen-asm-offsets 198define 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 ""; )
203endef 209endef
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
214CLEAN_FILES += $(ARCH_DIR)/user-offsets.s 214CLEAN_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
223CLEAN_FILES += $(ARCH_DIR)/kernel-offsets.s
224 219
225export SUBARCH USER_CFLAGS OS 220export SUBARCH USER_CFLAGS OS
diff --git a/arch/um/sys-i386/kernel-offsets.c b/arch/um/include/sysdep-i386/kernel-offsets.h
index 35db8505750..82f96c57414 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 bfcb104b846..5ce93abd0b5 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 c13a64a288f..91ea538e161 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"