[PATCH] uml: cross-build support : mk_task and mk_constants
Al Viro [Thu, 5 May 2005 23:15:27 +0000 (16:15 -0700)]
helpers in arch/um/util (mk_task and mk_constants) converted.  That's it -
none of the helpers depends on build and target being the same architecture
anymore.

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>

arch/um/Makefile
arch/um/util/Makefile
arch/um/util/mk_constants.c [new file with mode: 0644]
arch/um/util/mk_constants_kern.c [deleted file]
arch/um/util/mk_constants_user.c [deleted file]
arch/um/util/mk_task.c [moved from arch/um/util/mk_task_user.c with 75% similarity]
arch/um/util/mk_task_kern.c [deleted file]

index df492d8..642c75e 100644 (file)
@@ -206,7 +206,7 @@ $(ARCH_DIR)/util/mk_task $(ARCH_DIR)/util/mk_constants: $(ARCH_DIR)/include/user
 
 $(ARCH_DIR)/kernel/skas/util/mk_ptregs: $(ARCH_DIR)/kernel/skas/util FORCE ;
 
-$(ARCH_DIR)/util: scripts_basic $(SYS_DIR)/sc.h FORCE
+$(ARCH_DIR)/util: scripts_basic $(SYS_DIR)/sc.h $(ARCH_DIR)/kernel-offsets.h FORCE
        $(Q)$(MAKE) $(build)=$@
 
 $(ARCH_DIR)/kernel/skas/util: scripts_basic $(ARCH_DIR)/user-offsets.h FORCE
index e2ab712..4c7551c 100644 (file)
@@ -1,8 +1,5 @@
 hostprogs-y            := mk_task mk_constants
 always                 := $(hostprogs-y)
 
-mk_task-objs           := mk_task_user.o mk_task_kern.o
-mk_constants-objs      := mk_constants_user.o mk_constants_kern.o
-
-HOSTCFLAGS_mk_task_kern.o      := $(CFLAGS) $(CPPFLAGS)
-HOSTCFLAGS_mk_constants_kern.o := $(CFLAGS) $(CPPFLAGS)
+HOSTCFLAGS_mk_task.o := -I$(objtree)/arch/um
+HOSTCFLAGS_mk_constants.o := -I$(objtree)/arch/um
diff --git a/arch/um/util/mk_constants.c b/arch/um/util/mk_constants.c
new file mode 100644 (file)
index 0000000..ab217be
--- /dev/null
@@ -0,0 +1,32 @@
+#include <stdio.h>
+#include <kernel-offsets.h>
+
+#define SHOW_INT(sym) printf("#define %s %d\n", #sym, sym)
+#define SHOW_STR(sym) printf("#define %s %s\n", #sym, sym)
+
+int main(int argc, char **argv)
+{
+  printf("/*\n");
+  printf(" * Generated by mk_constants\n");
+  printf(" */\n");
+  printf("\n");
+  printf("#ifndef __UM_CONSTANTS_H\n");
+  printf("#define __UM_CONSTANTS_H\n");
+  printf("\n");
+
+  SHOW_INT(UM_KERN_PAGE_SIZE);
+
+  SHOW_STR(UM_KERN_EMERG);
+  SHOW_STR(UM_KERN_ALERT);
+  SHOW_STR(UM_KERN_CRIT);
+  SHOW_STR(UM_KERN_ERR);
+  SHOW_STR(UM_KERN_WARNING);
+  SHOW_STR(UM_KERN_NOTICE);
+  SHOW_STR(UM_KERN_INFO);
+  SHOW_STR(UM_KERN_DEBUG);
+
+  SHOW_INT(UM_NSEC_PER_SEC);
+  printf("\n");
+  printf("#endif\n");
+  return(0);
+}
diff --git a/arch/um/util/mk_constants_kern.c b/arch/um/util/mk_constants_kern.c
deleted file mode 100644 (file)
index cdcb123..0000000
+++ /dev/null
@@ -1,28 +0,0 @@
-#include "linux/kernel.h"
-#include "linux/stringify.h"
-#include "linux/time.h"
-#include "asm/page.h"
-
-extern void print_head(void);
-extern void print_constant_str(char *name, char *value);
-extern void print_constant_int(char *name, int value);
-extern void print_tail(void);
-
-int main(int argc, char **argv)
-{
-  print_head();
-  print_constant_int("UM_KERN_PAGE_SIZE", PAGE_SIZE);
-
-  print_constant_str("UM_KERN_EMERG", KERN_EMERG);
-  print_constant_str("UM_KERN_ALERT", KERN_ALERT);
-  print_constant_str("UM_KERN_CRIT", KERN_CRIT);
-  print_constant_str("UM_KERN_ERR", KERN_ERR);
-  print_constant_str("UM_KERN_WARNING", KERN_WARNING);
-  print_constant_str("UM_KERN_NOTICE", KERN_NOTICE);
-  print_constant_str("UM_KERN_INFO", KERN_INFO);
-  print_constant_str("UM_KERN_DEBUG", KERN_DEBUG);
-
-  print_constant_int("UM_NSEC_PER_SEC", NSEC_PER_SEC);
-  print_tail();
-  return(0);
-}
diff --git a/arch/um/util/mk_constants_user.c b/arch/um/util/mk_constants_user.c
deleted file mode 100644 (file)
index 8f4d7e5..0000000
+++ /dev/null
@@ -1,28 +0,0 @@
-#include <stdio.h>
-
-void print_head(void)
-{
-  printf("/*\n");
-  printf(" * Generated by mk_constants\n");
-  printf(" */\n");
-  printf("\n");
-  printf("#ifndef __UM_CONSTANTS_H\n");
-  printf("#define __UM_CONSTANTS_H\n");
-  printf("\n");
-}
-
-void print_constant_str(char *name, char *value)
-{
-  printf("#define %s \"%s\"\n", name, value);
-}
-
-void print_constant_int(char *name, int value)
-{
-  printf("#define %s %d\n", name, value);
-}
-
-void print_tail(void)
-{
-  printf("\n");
-  printf("#endif\n");
-}
similarity index 75%
rename from arch/um/util/mk_task_user.c
rename to arch/um/util/mk_task.c
index 9db849f..36c9606 100644 (file)
@@ -1,18 +1,19 @@
 #include <stdio.h>
+#include <kernel-offsets.h>
 
-void print(char *name, char *type, int offset)
+void print_ptr(char *name, char *type, int offset)
 {
-  printf("#define %s(task) *((%s *) &(((char *) (task))[%d]))\n", name, type,
+  printf("#define %s(task) ((%s *) &(((char *) (task))[%d]))\n", name, type,
         offset);
 }
 
-void print_ptr(char *name, char *type, int offset)
+void print(char *name, char *type, int offset)
 {
-  printf("#define %s(task) ((%s *) &(((char *) (task))[%d]))\n", name, type,
+  printf("#define %s(task) *((%s *) &(((char *) (task))[%d]))\n", name, type,
         offset);
 }
 
-void print_head(void)
+int main(int argc, char **argv)
 {
   printf("/*\n");
   printf(" * Generated by mk_task\n");
@@ -21,10 +22,9 @@ void print_head(void)
   printf("#ifndef __TASK_H\n");
   printf("#define __TASK_H\n");
   printf("\n");
-}
-
-void print_tail(void)
-{
+  print_ptr("TASK_REGS", "union uml_pt_regs", TASK_REGS);
+  print("TASK_PID", "int", TASK_PID);
   printf("\n");
   printf("#endif\n");
+  return(0);
 }
diff --git a/arch/um/util/mk_task_kern.c b/arch/um/util/mk_task_kern.c
deleted file mode 100644 (file)
index c218103..0000000
+++ /dev/null
@@ -1,17 +0,0 @@
-#include "linux/sched.h"
-#include "linux/stddef.h"
-
-extern void print(char *name, char *type, int offset);
-extern void print_ptr(char *name, char *type, int offset);
-extern void print_head(void);
-extern void print_tail(void);
-
-int main(int argc, char **argv)
-{
-  print_head();
-  print_ptr("TASK_REGS", "union uml_pt_regs", 
-           offsetof(struct task_struct, thread.regs));
-  print("TASK_PID", "int", offsetof(struct task_struct, pid));
-  print_tail();
-  return(0);
-}