[vmkit-commits] [vmkit] r145763 - in /vmkit/trunk: Makefile.config.in Makefile.rules autoconf/configure.ac lib/j3/ClassLib/Classpath.h.in lib/j3/ClassLib/OpenJDK/JavaUpcalls.cpp lib/j3/ClassLib/OpenJDK/JavaUpcalls.h lib/j3/ClassLib/OpenJDK/Makefile lib/j3/ClassLib/OpenJDK/OpenJDK.inc

Will Dietz wdietz2 at illinois.edu
Sat Dec 3 01:01:35 PST 2011


Author: wdietz2
Date: Sat Dec  3 03:01:34 2011
New Revision: 145763

URL: http://llvm.org/viewvc/llvm-project?rev=145763&view=rev
Log:
Build VMString into zip, pull into OpenJDK build for string interning.

(OpenJDK now builds again, seems to work as well as before)

Modified:
    vmkit/trunk/Makefile.config.in
    vmkit/trunk/Makefile.rules
    vmkit/trunk/autoconf/configure.ac
    vmkit/trunk/lib/j3/ClassLib/Classpath.h.in
    vmkit/trunk/lib/j3/ClassLib/OpenJDK/JavaUpcalls.cpp
    vmkit/trunk/lib/j3/ClassLib/OpenJDK/JavaUpcalls.h
    vmkit/trunk/lib/j3/ClassLib/OpenJDK/Makefile
    vmkit/trunk/lib/j3/ClassLib/OpenJDK/OpenJDK.inc

Modified: vmkit/trunk/Makefile.config.in
URL: http://llvm.org/viewvc/llvm-project/vmkit/trunk/Makefile.config.in?rev=145763&r1=145762&r2=145763&view=diff
==============================================================================
--- vmkit/trunk/Makefile.config.in (original)
+++ vmkit/trunk/Makefile.config.in Sat Dec  3 03:01:34 2011
@@ -17,6 +17,8 @@
 MMTK_PLAN_HEADER = @MMTK_PLAN_HEADER@
 WITH_64 = @WITH_64@
 ANT = @ANT@
+JAVAC= @JAVAC@
+ZIP =@ZIP@
 
 CLASSPATH_IMPL = @classpathimpl@
 

Modified: vmkit/trunk/Makefile.rules
URL: http://llvm.org/viewvc/llvm-project/vmkit/trunk/Makefile.rules?rev=145763&r1=145762&r2=145763&view=diff
==============================================================================
--- vmkit/trunk/Makefile.rules (original)
+++ vmkit/trunk/Makefile.rules Sat Dec  3 03:01:34 2011
@@ -145,3 +145,26 @@
 	-$(Verb) $(RM) -f FrametablesExterns.inc FrametablesSymbols.inc
 	
 endif
+
+###############################################################################
+# COMPILE_OPENJDK_ZIP: Build the specified java sources and zip them up
+###############################################################################
+ifeq ($(COMPILE_OPENJDK_ZIP), 1)
+
+# Some variables
+VMKIT_OPENJDK_ZIP=$(PROJ_OBJ_DIR)/vmkit-openjdk.zip
+CLASSES_DIR=$(PROJ_OBJ_DIR)/classes
+
+all-local:: $(VMKIT_OPENJDK_ZIP)
+clean-local::
+	-$(Verb) $(RM) -f $(CLASSES_DIR) $(VMKIT_OPENJDK_ZIP)
+
+
+$(VMKIT_OPENJDK_ZIP): $(addprefix $(PROJ_SRC_DIR)/,$(OPENJDK_JAVA_SOURCES))
+	$(Echo) "Building OpenJDK java sources into zip"
+	-$(Verb) $(RM) -rf $@ $(CLASSES_DIR)
+	$(Verb) $(MKDIR) $(CLASSES_DIR)
+	$(Verb) $(JAVAC) $^ -d $(CLASSES_DIR)
+	cd $(CLASSES_DIR) && $(ZIP) -qr $(VMKIT_OPENJDK_ZIP) .
+
+endif

Modified: vmkit/trunk/autoconf/configure.ac
URL: http://llvm.org/viewvc/llvm-project/vmkit/trunk/autoconf/configure.ac?rev=145763&r1=145762&r2=145763&view=diff
==============================================================================
--- vmkit/trunk/autoconf/configure.ac (original)
+++ vmkit/trunk/autoconf/configure.ac Sat Dec  3 03:01:34 2011
@@ -304,6 +304,8 @@
 AC_PATH_PROG(LLVMAS, [llvm-as],  [llvm-as])
 AC_PATH_PROG(LLC, [llc],  [llc])
 AC_PATH_PROG(ANT, [ant])
+AC_PATH_PROG(JAVAC, [javac], [javac])
+AC_PATH_PROG(ZIP, [zip], [zip])
 
 dnl Find the install program
 AC_PROG_INSTALL

Modified: vmkit/trunk/lib/j3/ClassLib/Classpath.h.in
URL: http://llvm.org/viewvc/llvm-project/vmkit/trunk/lib/j3/ClassLib/Classpath.h.in?rev=145763&r1=145762&r2=145763&view=diff
==============================================================================
--- vmkit/trunk/lib/j3/ClassLib/Classpath.h.in (original)
+++ vmkit/trunk/lib/j3/ClassLib/Classpath.h.in Sat Dec  3 03:01:34 2011
@@ -27,12 +27,7 @@
 #define OpenJDKArch "@openjdkarchdir@"
 
 // OpenJDK Bootstrap classpath
-#define OpenJDKBootPath \
-      OpenJDKJRE "/lib/rt.jar" \
-  ":" OpenJDKJRE "/lib/resources.jar" \
-  ":" OpenJDKJRE "/lib/jsse.jar" \
-  ":" OpenJDKJRE "/lib/jce.jar" \
-  ":" OpenJDKJRE "/lib/charsets.jar"
+extern const char * OpenJDKBootPath;
 
 // Location of OpenJDK's libjava.so
 #define OpenJDKLibJava OpenJDKArch "/libjava.so"

Modified: vmkit/trunk/lib/j3/ClassLib/OpenJDK/JavaUpcalls.cpp
URL: http://llvm.org/viewvc/llvm-project/vmkit/trunk/lib/j3/ClassLib/OpenJDK/JavaUpcalls.cpp?rev=145763&r1=145762&r2=145763&view=diff
==============================================================================
--- vmkit/trunk/lib/j3/ClassLib/OpenJDK/JavaUpcalls.cpp (original)
+++ vmkit/trunk/lib/j3/ClassLib/OpenJDK/JavaUpcalls.cpp Sat Dec  3 03:01:34 2011
@@ -47,6 +47,7 @@
 Class*      Classpath::threadGroup;
 JavaMethod* Classpath::getUncaughtExceptionHandler;
 JavaMethod* Classpath::uncaughtException;
+JavaMethod* Classpath::internString;
 
 JavaMethod* Classpath::setContextClassLoader;
 JavaMethod* Classpath::getSystemClassLoader;
@@ -228,6 +229,14 @@
 JavaMethod* Classpath::initRefHandler;
 JavaMethod* Classpath::threadStart;
 
+const char * OpenJDKBootPath =
+      OpenJDKJRE "/lib/rt.jar"
+  ":" OpenJDKJRE "/lib/resources.jar"
+  ":" OpenJDKJRE "/lib/jsse.jar"
+  ":" OpenJDKJRE "/lib/jce.jar"
+  ":" OpenJDKJRE "/lib/charsets.jar"
+  ":" VMKitOpenJDKZip ;
+
 void Classpath::CreateJavaThread(Jnjvm* vm, JavaThread* myth,
                                  const char* thName, JavaObject* Group) {
   JavaObject* th = NULL;
@@ -947,6 +956,12 @@
     UPCALL_METHOD(loader, "java/lang/ref/Reference", "<clinit>",
                   "()V", ACC_STATIC);
   ReferenceClassInit->setNative();
+
+  // String support
+
+  internString =
+    UPCALL_METHOD(loader, "java/lang/VMString", "intern",
+        "(Ljava/lang/String;)Ljava/lang/String;", ACC_STATIC);
 }
 
 void Classpath::InitializeSystem(Jnjvm * jvm) {

Modified: vmkit/trunk/lib/j3/ClassLib/OpenJDK/JavaUpcalls.h
URL: http://llvm.org/viewvc/llvm-project/vmkit/trunk/lib/j3/ClassLib/OpenJDK/JavaUpcalls.h?rev=145763&r1=145762&r2=145763&view=diff
==============================================================================
--- vmkit/trunk/lib/j3/ClassLib/OpenJDK/JavaUpcalls.h (original)
+++ vmkit/trunk/lib/j3/ClassLib/OpenJDK/JavaUpcalls.h Sat Dec  3 03:01:34 2011
@@ -144,6 +144,7 @@
   ISOLATE_STATIC UserClass* threadGroup;
   ISOLATE_STATIC JavaMethod* getUncaughtExceptionHandler;
   ISOLATE_STATIC JavaMethod* uncaughtException;
+  ISOLATE_STATIC JavaMethod* internString;
 
 
   ISOLATE_STATIC UserClass* InvocationTargetException;

Modified: vmkit/trunk/lib/j3/ClassLib/OpenJDK/Makefile
URL: http://llvm.org/viewvc/llvm-project/vmkit/trunk/lib/j3/ClassLib/OpenJDK/Makefile?rev=145763&r1=145762&r2=145763&view=diff
==============================================================================
--- vmkit/trunk/lib/j3/ClassLib/OpenJDK/Makefile (original)
+++ vmkit/trunk/lib/j3/ClassLib/OpenJDK/Makefile Sat Dec  3 03:01:34 2011
@@ -14,9 +14,13 @@
 
 MODULE_WITH_GC = Classpath
 
+COMPILE_OPENJDK_ZIP=1
+OPENJDK_JAVA_SOURCES=java/lang/VMString.java
+
 include $(LEVEL)/Makefile.common
 
 CXX.Flags += -I$(PROJ_SRC_DIR)/../../VMCore
 CXX.Flags += -I$(PROJ_SRC_ROOT)/include/j3
 CXX.Flags += -I$(PROJ_SRC_DIR)/.. -I$(PROJ_OBJ_DIR)/..
 CXX.Flags += -I$(PROJ_SRC_ROOT)/include/j3/openjdk
+CXX.Flags += -DVMKitOpenJDKZip=\"$(VMKIT_OPENJDK_ZIP)\"

Modified: vmkit/trunk/lib/j3/ClassLib/OpenJDK/OpenJDK.inc
URL: http://llvm.org/viewvc/llvm-project/vmkit/trunk/lib/j3/ClassLib/OpenJDK/OpenJDK.inc?rev=145763&r1=145762&r2=145763&view=diff
==============================================================================
--- vmkit/trunk/lib/j3/ClassLib/OpenJDK/OpenJDK.inc (original)
+++ vmkit/trunk/lib/j3/ClassLib/OpenJDK/OpenJDK.inc Sat Dec  3 03:01:34 2011
@@ -175,10 +175,6 @@
   llvm_gcroot(array, 0);
   llvm_gcroot(res, 0);
 
-  // If already intern'd, just return.
-  if(str->getVirtualTable() == JavaString::internStringVT)
-    return _str;
-
   BEGIN_JNI_EXCEPTION
 
   Jnjvm* vm = JavaThread::get()->getJVM();





More information about the vmkit-commits mailing list