[PATCH] uml: cross-build support : mk_thread
mk_thread converted Signed-off-by: Al Viro <viro@parcelfarce.linux.theplanet.co.uk> Signed-off-by: Jeff Dike <jdike@addtoit.com> Cc: Paolo 'Blaisorblade' Giarrusso <blaisorblade@yahoo.it> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
This commit is contained in:
parent
a31769ed3e
commit
2b8b611e9a
@ -35,7 +35,7 @@ $(SYS_DIR)/thread.h: $(SYS_UTIL_DIR)/mk_thread
|
|||||||
$(SYS_UTIL_DIR)/mk_sc: scripts_basic $(ARCH_DIR)/user-offsets.h FORCE
|
$(SYS_UTIL_DIR)/mk_sc: scripts_basic $(ARCH_DIR)/user-offsets.h FORCE
|
||||||
$(Q)$(MAKE) $(build)=$(SYS_UTIL_DIR) $@
|
$(Q)$(MAKE) $(build)=$(SYS_UTIL_DIR) $@
|
||||||
|
|
||||||
$(SYS_UTIL_DIR)/mk_thread: scripts_basic $(ARCH_SYMLINKS) $(GEN_HEADERS) FORCE
|
$(SYS_UTIL_DIR)/mk_thread: scripts_basic $(ARCH_DIR)/kernel-offsets.h FORCE
|
||||||
$(Q)$(MAKE) $(build)=$(SYS_UTIL_DIR) $@
|
$(Q)$(MAKE) $(build)=$(SYS_UTIL_DIR) $@
|
||||||
|
|
||||||
$(SYS_UTIL_DIR): scripts_basic include/asm FORCE
|
$(SYS_UTIL_DIR): scripts_basic include/asm FORCE
|
||||||
|
@ -26,7 +26,7 @@ $(SYS_DIR)/thread.h: $(SYS_UTIL_DIR)/mk_thread
|
|||||||
$(SYS_UTIL_DIR)/mk_sc: scripts_basic $(ARCH_DIR)/user-offsets.h FORCE
|
$(SYS_UTIL_DIR)/mk_sc: scripts_basic $(ARCH_DIR)/user-offsets.h FORCE
|
||||||
$(Q)$(MAKE) $(build)=$(SYS_UTIL_DIR) $@
|
$(Q)$(MAKE) $(build)=$(SYS_UTIL_DIR) $@
|
||||||
|
|
||||||
$(SYS_UTIL_DIR)/mk_thread: scripts_basic $(ARCH_SYMLINKS) $(GEN_HEADERS) FORCE
|
$(SYS_UTIL_DIR)/mk_thread: scripts_basic $(GEN_HEADERS) $(ARCH_DIR)/kernel-offsets.h FORCE
|
||||||
$(Q)$(MAKE) $(build)=$(SYS_UTIL_DIR) $@
|
$(Q)$(MAKE) $(build)=$(SYS_UTIL_DIR) $@
|
||||||
|
|
||||||
CLEAN_FILES += $(SYS_HEADERS)
|
CLEAN_FILES += $(SYS_HEADERS)
|
||||||
|
@ -1,9 +1,5 @@
|
|||||||
|
|
||||||
hostprogs-y := mk_sc mk_thread
|
hostprogs-y := mk_sc mk_thread
|
||||||
always := $(hostprogs-y)
|
always := $(hostprogs-y)
|
||||||
|
|
||||||
mk_thread-objs := mk_thread_kern.o mk_thread_user.o
|
|
||||||
|
|
||||||
HOSTCFLAGS_mk_thread_kern.o := $(CFLAGS) $(CPPFLAGS)
|
|
||||||
HOSTCFLAGS_mk_thread_user.o := $(USER_CFLAGS)
|
|
||||||
HOSTCFLAGS_mk_sc.o := -I$(objtree)/arch/um
|
HOSTCFLAGS_mk_sc.o := -I$(objtree)/arch/um
|
||||||
|
HOSTCFLAGS_mk_thread.o := -I$(objtree)/arch/um
|
||||||
|
22
arch/um/sys-i386/util/mk_thread.c
Normal file
22
arch/um/sys-i386/util/mk_thread.c
Normal file
@ -0,0 +1,22 @@
|
|||||||
|
#include <stdio.h>
|
||||||
|
#include <kernel-offsets.h>
|
||||||
|
|
||||||
|
int main(int argc, char **argv)
|
||||||
|
{
|
||||||
|
printf("/*\n");
|
||||||
|
printf(" * Generated by mk_thread\n");
|
||||||
|
printf(" */\n");
|
||||||
|
printf("\n");
|
||||||
|
printf("#ifndef __UM_THREAD_H\n");
|
||||||
|
printf("#define __UM_THREAD_H\n");
|
||||||
|
printf("\n");
|
||||||
|
printf("#define TASK_DEBUGREGS(task) ((unsigned long *) "
|
||||||
|
"&(((char *) (task))[%d]))\n", TASK_DEBUGREGS);
|
||||||
|
#ifdef TASK_EXTERN_PID
|
||||||
|
printf("#define TASK_EXTERN_PID(task) *((int *) &(((char *) (task))[%d]))\n",
|
||||||
|
TASK_EXTERN_PID);
|
||||||
|
#endif
|
||||||
|
printf("\n");
|
||||||
|
printf("#endif\n");
|
||||||
|
return(0);
|
||||||
|
}
|
@ -1,22 +0,0 @@
|
|||||||
#include "linux/config.h"
|
|
||||||
#include "linux/stddef.h"
|
|
||||||
#include "linux/sched.h"
|
|
||||||
|
|
||||||
extern void print_head(void);
|
|
||||||
extern void print_constant_ptr(char *name, int value);
|
|
||||||
extern void print_constant(char *name, char *type, int value);
|
|
||||||
extern void print_tail(void);
|
|
||||||
|
|
||||||
#define THREAD_OFFSET(field) offsetof(struct task_struct, thread.field)
|
|
||||||
|
|
||||||
int main(int argc, char **argv)
|
|
||||||
{
|
|
||||||
print_head();
|
|
||||||
print_constant_ptr("TASK_DEBUGREGS", THREAD_OFFSET(arch.debugregs));
|
|
||||||
#ifdef CONFIG_MODE_TT
|
|
||||||
print_constant("TASK_EXTERN_PID", "int", THREAD_OFFSET(mode.tt.extern_pid));
|
|
||||||
#endif
|
|
||||||
print_tail();
|
|
||||||
return(0);
|
|
||||||
}
|
|
||||||
|
|
@ -1,30 +0,0 @@
|
|||||||
#include <stdio.h>
|
|
||||||
|
|
||||||
void print_head(void)
|
|
||||||
{
|
|
||||||
printf("/*\n");
|
|
||||||
printf(" * Generated by mk_thread\n");
|
|
||||||
printf(" */\n");
|
|
||||||
printf("\n");
|
|
||||||
printf("#ifndef __UM_THREAD_H\n");
|
|
||||||
printf("#define __UM_THREAD_H\n");
|
|
||||||
printf("\n");
|
|
||||||
}
|
|
||||||
|
|
||||||
void print_constant_ptr(char *name, int value)
|
|
||||||
{
|
|
||||||
printf("#define %s(task) ((unsigned long *) "
|
|
||||||
"&(((char *) (task))[%d]))\n", name, value);
|
|
||||||
}
|
|
||||||
|
|
||||||
void print_constant(char *name, char *type, int value)
|
|
||||||
{
|
|
||||||
printf("#define %s(task) *((%s *) &(((char *) (task))[%d]))\n", name, type,
|
|
||||||
value);
|
|
||||||
}
|
|
||||||
|
|
||||||
void print_tail(void)
|
|
||||||
{
|
|
||||||
printf("\n");
|
|
||||||
printf("#endif\n");
|
|
||||||
}
|
|
@ -4,8 +4,5 @@
|
|||||||
hostprogs-y := mk_sc mk_thread
|
hostprogs-y := mk_sc mk_thread
|
||||||
always := $(hostprogs-y)
|
always := $(hostprogs-y)
|
||||||
|
|
||||||
mk_thread-objs := mk_thread_kern.o mk_thread_user.o
|
|
||||||
|
|
||||||
HOSTCFLAGS_mk_thread_kern.o := $(CFLAGS) $(CPPFLAGS)
|
|
||||||
HOSTCFLAGS_mk_thread_user.o := $(USER_CFLAGS)
|
|
||||||
HOSTCFLAGS_mk_sc.o := -I$(objtree)/arch/um
|
HOSTCFLAGS_mk_sc.o := -I$(objtree)/arch/um
|
||||||
|
HOSTCFLAGS_mk_thread.o := -I$(objtree)/arch/um
|
||||||
|
20
arch/um/sys-x86_64/util/mk_thread.c
Normal file
20
arch/um/sys-x86_64/util/mk_thread.c
Normal file
@ -0,0 +1,20 @@
|
|||||||
|
#include <stdio.h>
|
||||||
|
#include <kernel-offsets.h>
|
||||||
|
|
||||||
|
int main(int argc, char **argv)
|
||||||
|
{
|
||||||
|
printf("/*\n");
|
||||||
|
printf(" * Generated by mk_thread\n");
|
||||||
|
printf(" */\n");
|
||||||
|
printf("\n");
|
||||||
|
printf("#ifndef __UM_THREAD_H\n");
|
||||||
|
printf("#define __UM_THREAD_H\n");
|
||||||
|
printf("\n");
|
||||||
|
#ifdef TASK_EXTERN_PID
|
||||||
|
printf("#define TASK_EXTERN_PID(task) *((int *) &(((char *) (task))[%d]))\n",
|
||||||
|
TASK_EXTERN_PID);
|
||||||
|
#endif
|
||||||
|
printf("\n");
|
||||||
|
printf("#endif\n");
|
||||||
|
return(0);
|
||||||
|
}
|
@ -1,21 +0,0 @@
|
|||||||
#include "linux/config.h"
|
|
||||||
#include "linux/stddef.h"
|
|
||||||
#include "linux/sched.h"
|
|
||||||
|
|
||||||
extern void print_head(void);
|
|
||||||
extern void print_constant_ptr(char *name, int value);
|
|
||||||
extern void print_constant(char *name, char *type, int value);
|
|
||||||
extern void print_tail(void);
|
|
||||||
|
|
||||||
#define THREAD_OFFSET(field) offsetof(struct task_struct, thread.field)
|
|
||||||
|
|
||||||
int main(int argc, char **argv)
|
|
||||||
{
|
|
||||||
print_head();
|
|
||||||
#ifdef CONFIG_MODE_TT
|
|
||||||
print_constant("TASK_EXTERN_PID", "int", THREAD_OFFSET(mode.tt.extern_pid));
|
|
||||||
#endif
|
|
||||||
print_tail();
|
|
||||||
return(0);
|
|
||||||
}
|
|
||||||
|
|
@ -1,30 +0,0 @@
|
|||||||
#include <stdio.h>
|
|
||||||
|
|
||||||
void print_head(void)
|
|
||||||
{
|
|
||||||
printf("/*\n");
|
|
||||||
printf(" * Generated by mk_thread\n");
|
|
||||||
printf(" */\n");
|
|
||||||
printf("\n");
|
|
||||||
printf("#ifndef __UM_THREAD_H\n");
|
|
||||||
printf("#define __UM_THREAD_H\n");
|
|
||||||
printf("\n");
|
|
||||||
}
|
|
||||||
|
|
||||||
void print_constant_ptr(char *name, int value)
|
|
||||||
{
|
|
||||||
printf("#define %s(task) ((unsigned long *) "
|
|
||||||
"&(((char *) (task))[%d]))\n", name, value);
|
|
||||||
}
|
|
||||||
|
|
||||||
void print_constant(char *name, char *type, int value)
|
|
||||||
{
|
|
||||||
printf("#define %s(task) *((%s *) &(((char *) (task))[%d]))\n", name, type,
|
|
||||||
value);
|
|
||||||
}
|
|
||||||
|
|
||||||
void print_tail(void)
|
|
||||||
{
|
|
||||||
printf("\n");
|
|
||||||
printf("#endif\n");
|
|
||||||
}
|
|
Loading…
Reference in New Issue
Block a user