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 /arch/um/include | |
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>
Diffstat (limited to 'arch/um/include')
-rw-r--r-- | arch/um/include/sysdep-i386/kernel-offsets.h | 23 | ||||
-rw-r--r-- | arch/um/include/sysdep-x86_64/kernel-offsets.h | 25 |
2 files changed, 48 insertions, 0 deletions
diff --git a/arch/um/include/sysdep-i386/kernel-offsets.h b/arch/um/include/sysdep-i386/kernel-offsets.h new file mode 100644 index 000000000000..82f96c574144 --- /dev/null +++ b/arch/um/include/sysdep-i386/kernel-offsets.h | |||
@@ -0,0 +1,23 @@ | |||
1 | #include <linux/stddef.h> | ||
2 | #include <linux/sched.h> | ||
3 | #include <linux/elf.h> | ||
4 | |||
5 | #define DEFINE(sym, val) \ | ||
6 | asm volatile("\n->" #sym " %0 " #val : : "i" (val)) | ||
7 | |||
8 | #define STR(x) #x | ||
9 | #define DEFINE_STR(sym, val) asm volatile("\n->" #sym " " STR(val) " " #val: : ) | ||
10 | |||
11 | #define BLANK() asm volatile("\n->" : : ) | ||
12 | |||
13 | #define OFFSET(sym, str, mem) \ | ||
14 | DEFINE(sym, offsetof(struct str, mem)); | ||
15 | |||
16 | void foo(void) | ||
17 | { | ||
18 | OFFSET(HOST_TASK_DEBUGREGS, task_struct, thread.arch.debugregs); | ||
19 | #ifdef CONFIG_MODE_TT | ||
20 | OFFSET(HOST_TASK_EXTERN_PID, task_struct, thread.mode.tt.extern_pid); | ||
21 | #endif | ||
22 | #include <common-offsets.h> | ||
23 | } | ||
diff --git a/arch/um/include/sysdep-x86_64/kernel-offsets.h b/arch/um/include/sysdep-x86_64/kernel-offsets.h new file mode 100644 index 000000000000..5ce93abd0b54 --- /dev/null +++ b/arch/um/include/sysdep-x86_64/kernel-offsets.h | |||
@@ -0,0 +1,25 @@ | |||
1 | #include <linux/config.h> | ||
2 | #include <linux/stddef.h> | ||
3 | #include <linux/sched.h> | ||
4 | #include <linux/time.h> | ||
5 | #include <linux/elf.h> | ||
6 | #include <asm/page.h> | ||
7 | |||
8 | #define DEFINE(sym, val) \ | ||
9 | asm volatile("\n->" #sym " %0 " #val : : "i" (val)) | ||
10 | |||
11 | #define DEFINE_STR1(x) #x | ||
12 | #define DEFINE_STR(sym, val) asm volatile("\n->" #sym " " DEFINE_STR1(val) " " #val: : ) | ||
13 | |||
14 | #define BLANK() asm volatile("\n->" : : ) | ||
15 | |||
16 | #define OFFSET(sym, str, mem) \ | ||
17 | DEFINE(sym, offsetof(struct str, mem)); | ||
18 | |||
19 | void foo(void) | ||
20 | { | ||
21 | #ifdef CONFIG_MODE_TT | ||
22 | OFFSET(HOST_TASK_EXTERN_PID, task_struct, thread.mode.tt.extern_pid); | ||
23 | #endif | ||
24 | #include <common-offsets.h> | ||
25 | } | ||