[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>
This commit is contained in:
parent
10b5aabddd
commit
4ee189a926
4 changed files with 12 additions and 20 deletions
|
@ -189,6 +189,12 @@ define filechk_umlconfig
|
|||
sed 's/ CONFIG/ UML_CONFIG/'
|
||||
endef
|
||||
|
||||
$(ARCH_DIR)/include/uml-config.h : include/linux/autoconf.h
|
||||
$(call filechk,umlconfig)
|
||||
|
||||
$(ARCH_DIR)/user-offsets.s: $(ARCH_DIR)/sys-$(SUBARCH)/user-offsets.c
|
||||
$(CC) $(USER_CFLAGS) -S -o $@ $<
|
||||
|
||||
define filechk_gen-asm-offsets
|
||||
(set -e; \
|
||||
echo "/*"; \
|
||||
|
@ -202,24 +208,13 @@ define filechk_gen-asm-offsets
|
|||
echo ""; )
|
||||
endef
|
||||
|
||||
$(ARCH_DIR)/include/uml-config.h : include/linux/autoconf.h
|
||||
$(call filechk,umlconfig)
|
||||
|
||||
$(ARCH_DIR)/user-offsets.s: $(ARCH_DIR)/sys-$(SUBARCH)/user-offsets.c
|
||||
$(CC) $(USER_CFLAGS) -S -o $@ $<
|
||||
|
||||
$(ARCH_DIR)/include/user_constants.h: $(ARCH_DIR)/user-offsets.s
|
||||
$(call filechk,gen-asm-offsets)
|
||||
|
||||
CLEAN_FILES += $(ARCH_DIR)/user-offsets.s
|
||||
|
||||
$(ARCH_DIR)/kernel-offsets.s: $(ARCH_DIR)/sys-$(SUBARCH)/kernel-offsets.c \
|
||||
archprepare
|
||||
$(CC) $(CFLAGS) $(NOSTDINC_FLAGS) $(CPPFLAGS) -S -o $@ $<
|
||||
|
||||
$(ARCH_DIR)/include/kern_constants.h: $(ARCH_DIR)/kernel-offsets.s
|
||||
$(call filechk,gen-asm-offsets)
|
||||
|
||||
CLEAN_FILES += $(ARCH_DIR)/kernel-offsets.s
|
||||
$(ARCH_DIR)/include/kern_constants.h:
|
||||
@echo ' SYMLINK $@'
|
||||
$(Q) ln -sf ../../../include/asm-um/asm-offsets.h $@
|
||||
|
||||
export SUBARCH USER_CFLAGS OS
|
||||
|
|
|
@ -1,12 +1,9 @@
|
|||
#include <linux/config.h>
|
||||
#include <linux/stddef.h>
|
||||
#include <linux/sched.h>
|
||||
#include <linux/time.h>
|
||||
#include <linux/elf.h>
|
||||
#include <asm/page.h>
|
||||
|
||||
#define DEFINE(sym, val) \
|
||||
asm volatile("\n->" #sym " %0 " #val : : "i" (val))
|
||||
asm volatile("\n->" #sym " %0 " #val : : "i" (val))
|
||||
|
||||
#define STR(x) #x
|
||||
#define DEFINE_STR(sym, val) asm volatile("\n->" #sym " " STR(val) " " #val: : )
|
|
@ -6,7 +6,7 @@
|
|||
#include <asm/page.h>
|
||||
|
||||
#define DEFINE(sym, val) \
|
||||
asm volatile("\n->" #sym " %0 " #val : : "i" (val))
|
||||
asm volatile("\n->" #sym " %0 " #val : : "i" (val))
|
||||
|
||||
#define DEFINE_STR1(x) #x
|
||||
#define DEFINE_STR(sym, val) asm volatile("\n->" #sym " " DEFINE_STR1(val) " " #val: : )
|
|
@ -1 +1 @@
|
|||
/* Dummy file to make kbuild happy - unused! */
|
||||
#include "sysdep/kernel-offsets.h"
|
||||
|
|
Loading…
Reference in a new issue