From 4ee189a9260849ebacbdd3caf1fd5eb077fcf6a9 Mon Sep 17 00:00:00 2001 From: Jeff Dike Date: Wed, 11 Jan 2006 12:17:23 -0800 Subject: [PATCH] [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 Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds --- arch/um/Makefile | 23 ++++++++----------- .../sysdep-i386/kernel-offsets.h} | 5 +--- .../sysdep-x86_64/kernel-offsets.h} | 2 +- arch/um/kernel/asm-offsets.c | 2 +- 4 files changed, 12 insertions(+), 20 deletions(-) rename arch/um/{sys-i386/kernel-offsets.c => include/sysdep-i386/kernel-offsets.h} (80%) rename arch/um/{sys-x86_64/kernel-offsets.c => include/sysdep-x86_64/kernel-offsets.h} (90%) 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 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 diff --git a/arch/um/sys-i386/kernel-offsets.c b/arch/um/include/sysdep-i386/kernel-offsets.h similarity index 80% rename from arch/um/sys-i386/kernel-offsets.c rename to 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 @@ -#include #include #include -#include #include -#include #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: : ) diff --git a/arch/um/sys-x86_64/kernel-offsets.c b/arch/um/include/sysdep-x86_64/kernel-offsets.h similarity index 90% rename from arch/um/sys-x86_64/kernel-offsets.c rename to 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 @@ #include #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: : ) 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"