[vmkit-commits] [vmkit] r68386 - in /vmkit/trunk/tools/llcj: LinkPaths.h.in Makefile llcj.cpp

Nicolas Geoffray nicolas.geoffray at lip6.fr
Fri Apr 3 06:38:24 PDT 2009


Author: geoffray
Date: Fri Apr  3 08:37:56 2009
New Revision: 68386

URL: http://llvm.org/viewvc/llvm-project?rev=68386&view=rev
Log:
Make room for generating executables with LLVM JIT, but wait until
I figure out how to use llvm-config properly.


Modified:
    vmkit/trunk/tools/llcj/LinkPaths.h.in
    vmkit/trunk/tools/llcj/Makefile
    vmkit/trunk/tools/llcj/llcj.cpp

Modified: vmkit/trunk/tools/llcj/LinkPaths.h.in
URL: http://llvm.org/viewvc/llvm-project/vmkit/trunk/tools/llcj/LinkPaths.h.in?rev=68386&r1=68385&r2=68386&view=diff

==============================================================================
--- vmkit/trunk/tools/llcj/LinkPaths.h.in (original)
+++ vmkit/trunk/tools/llcj/LinkPaths.h.in Fri Apr  3 08:37:56 2009
@@ -8,7 +8,7 @@
 //===----------------------------------------------------------------------===//
 
 
-#define LLVMLibs "-L at LLVM_OBJ@/Release/lib";
-#define VMKITLibs1 "-L at abs_top_objdir@/Release/lib";
-#define VMKITLibs2 "-L at abs_top_srcdir@/Release/lib";
-#define VMKITLibs3 "-L at PROJ_INSTALL_ROOT@/lib";
+#define LLVMLibs "@LLVM_OBJ@"
+#define VMKITLibs1 "-L at abs_top_objdir@/Release/lib"
+#define VMKITLibs2 "-L at abs_top_srcdir@/Release/lib"
+#define VMKITLibs3 "-L at PROJ_INSTALL_ROOT@/lib"

Modified: vmkit/trunk/tools/llcj/Makefile
URL: http://llvm.org/viewvc/llvm-project/vmkit/trunk/tools/llcj/Makefile?rev=68386&r1=68385&r2=68386&view=diff

==============================================================================
--- vmkit/trunk/tools/llcj/Makefile (original)
+++ vmkit/trunk/tools/llcj/Makefile Fri Apr  3 08:37:56 2009
@@ -8,7 +8,7 @@
 ##===----------------------------------------------------------------------===##
 LEVEL = ../..
 
-DIRS = libjnjvm
+DIRS = libjnjvm libjnjvmjit
 
 include $(LEVEL)/Makefile.config
 

Modified: vmkit/trunk/tools/llcj/llcj.cpp
URL: http://llvm.org/viewvc/llvm-project/vmkit/trunk/tools/llcj/llcj.cpp?rev=68386&r1=68385&r2=68386&view=diff

==============================================================================
--- vmkit/trunk/tools/llcj/llcj.cpp (original)
+++ vmkit/trunk/tools/llcj/llcj.cpp Fri Apr  3 08:37:56 2009
@@ -30,11 +30,16 @@
   bool runGCC = true;
   char* className = 0;
   bool shared = false;
+  bool withJIT = false;
 
   for (int i = 1; i < argc; ++i) {
     if (!strcmp(argv[i], "-shared")) {
       gccArgv[gccArgc++] = argv[i];
       shared = true;
+    } else if (!strcmp(argv[i], "-with-jit") ||
+               !strcmp(argv[i], "--with-jit")) {
+      withJIT = true;
+      vmjcArgv[vmjcArgc++] = argv[i];
     } else if (!strcmp(argv[i], "-O1") || !strcmp(argv[i], "-O2") ||
                !strcmp(argv[i], "-O3")) {
       opt = argv[i];
@@ -58,9 +63,19 @@
       if (len > 4 && (!strcmp(&name[len - 4], ".jar") || 
                       !strcmp(&name[len - 4], ".zip"))) {
         vmjcArgv[vmjcArgc++] = name;
+        char* slash = strrchr(name, '/');
+        if (slash) {
+          name = slash;
+          len = strlen(name);
+        }
         className = strndup(name, len - 4);
       } else if (len > 6 && !strcmp(&name[len - 6], ".class")) {
         vmjcArgv[vmjcArgc++] = name;
+        char* slash = strrchr(name, '/');
+        if (slash) {
+          name = slash;
+          len = strlen(name);
+        }
         className = strndup(name, len - 6);
       } else {
         gccArgv[gccArgc++] = name;
@@ -110,9 +125,9 @@
   vmjcArgv[vmjcArgc++] = "-f";
   vmjcArgv[vmjcArgc++] = "-o";
   vmjcArgv[vmjcArgc++] = Out.toString().c_str();
- 
+
   res = sys::Program::ExecuteAndWait(Prog, vmjcArgv);
-  
+
   if (!res && opt) {
     sys::Path OptOut = tempDir;
     OptOut.appendComponent("llvmopt");
@@ -185,7 +200,7 @@
 
     gccArgv[0] = Prog.toString().c_str();
     gccArgv[gccArgc++] = Out.toString().c_str();
-    gccArgv[gccArgc++] = LLVMLibs;
+    gccArgv[gccArgc++] = "-L"LLVMLibs"/Release/lib";
     gccArgv[gccArgc++] = VMKITLibs1;
     gccArgv[gccArgc++] = VMKITLibs2;
     gccArgv[gccArgc++] = VMKITLibs3;
@@ -194,7 +209,11 @@
     gccArgv[gccArgc++] = "-lm";
     gccArgv[gccArgc++] = "-ldl";
     gccArgv[gccArgc++] = "-lz";
-    gccArgv[gccArgc++] = "-ljnjvm";
+    if (withJIT) {
+      gccArgv[gccArgc++] = "-ljnjvmjit";
+    } else {
+      gccArgv[gccArgc++] = "-ljnjvm";
+    }
     gccArgv[gccArgc++] = "-lvmjc";
     gccArgv[gccArgc++] = "-lLLVMSupport";
 #if !defined(__MACH__)





More information about the vmkit-commits mailing list