[vmkit-commits] [vmkit] r198508 - define a InitProperties function, however, I don't define any property for the moment.

Gael Thomas gael.thomas at lip6.fr
Sat Jan 4 10:06:00 PST 2014


Author: gthomas
Date: Sat Jan  4 12:05:59 2014
New Revision: 198508

URL: http://llvm.org/viewvc/llvm-project?rev=198508&view=rev
Log:
define a InitProperties function, however, I don't define any property for the moment.

Modified:
    vmkit/branches/mcjit/include/j3/j3object.h
    vmkit/branches/mcjit/lib/j3/openjdk/j3openjdk.cc
    vmkit/branches/mcjit/lib/j3/vm/j3classloader.cc
    vmkit/branches/mcjit/lib/j3/vm/j3trampoline.cc

Modified: vmkit/branches/mcjit/include/j3/j3object.h
URL: http://llvm.org/viewvc/llvm-project/vmkit/branches/mcjit/include/j3/j3object.h?rev=198508&r1=198507&r2=198508&view=diff
==============================================================================
--- vmkit/branches/mcjit/include/j3/j3object.h (original)
+++ vmkit/branches/mcjit/include/j3/j3object.h Sat Jan  4 12:05:59 2014
@@ -43,7 +43,7 @@ namespace j3 {
 		friend class J3Trampoline;
 
 	public:
-		static const uint32_t nbInterfaceMethodTable = 41;
+		static const uint32_t nbInterfaceMethodTable = 117;//41;
 		static const uint32_t gepObjectClass = 0;
 		static const uint32_t gepInterfaceMethods = 2;
 		static const uint32_t gepVirtualMethods = 4;

Modified: vmkit/branches/mcjit/lib/j3/openjdk/j3openjdk.cc
URL: http://llvm.org/viewvc/llvm-project/vmkit/branches/mcjit/lib/j3/openjdk/j3openjdk.cc?rev=198508&r1=198507&r2=198508&view=diff
==============================================================================
--- vmkit/branches/mcjit/lib/j3/openjdk/j3openjdk.cc (original)
+++ vmkit/branches/mcjit/lib/j3/openjdk/j3openjdk.cc Sat Jan  4 12:05:59 2014
@@ -102,7 +102,50 @@ void JNICALL JVM_ArrayCopy(JNIEnv* env,
 	leaveJVM(); 
 }
 
-jobject JNICALL JVM_InitProperties(JNIEnv* env, jobject p) { enterJVM(); NYI(); leaveJVM(); }
+jobject JNICALL JVM_InitProperties(JNIEnv* env, jobject p) { 
+	enterJVM(); 
+#if 0
+	/*
+	 * <dt>java.version         <dd>Java version number
+	 * <dt>java.vendor          <dd>Java vendor specific string
+	 * <dt>java.vendor.url      <dd>Java vendor URL
+	 * <dt>java.home            <dd>Java installation directory
+	 * <dt>java.class.version   <dd>Java class version number
+	 * <dt>java.class.path      <dd>Java classpath
+	 * <dt>os.name              <dd>Operating System Name
+	 * <dt>os.arch              <dd>Operating System Architecture
+	 * <dt>os.version           <dd>Operating System Version
+	 * <dt>file.separator       <dd>File separator ("/" on Unix)
+	 * <dt>path.separator       <dd>Path separator (":" on Unix)
+	 * <dt>line.separator       <dd>Line separator ("\n" on Unix)
+	 * <dt>user.name            <dd>User account name
+	 * <dt>user.home            <dd>User home directory
+	 * <dt>user.dir             <dd>User's current working directory
+	 */
+  JavaObject * prop = *(JavaObject**)p;
+  llvm_gcroot(prop, 0);
+  setProperties(prop);
+  setCommandLineProperties(prop);
+
+  Jnjvm* vm = JavaThread::get()->getJVM();
+  const char * tmp = getenv("JAVA_COMPILER");
+  if (tmp)
+    setProperty(vm, prop, "java.compiler", tmp);
+
+  // Override properties to indicate java version 1.6
+  setProperty(vm, prop, "java.specification.version", "1.6");
+  setProperty(vm, prop, "java.version", "1.6");
+  setProperty(vm, prop, "java.runtime.version", "1.6");
+
+  // Set additional path properties
+  // For now, ignore JAVA_HOME.  We don't want to be using a location
+  // other than the one we precompiled against anyway.
+  setProperty(vm, prop, "java.home", OpenJDKJRE);
+  setProperty(vm, prop, "java.ext.dirs", OpenJDKExtDirs);
+#endif
+	leaveJVM(); 
+	return p;
+}
 
 /*
  * java.io.File

Modified: vmkit/branches/mcjit/lib/j3/vm/j3classloader.cc
URL: http://llvm.org/viewvc/llvm-project/vmkit/branches/mcjit/lib/j3/vm/j3classloader.cc?rev=198508&r1=198507&r2=198508&view=diff
==============================================================================
--- vmkit/branches/mcjit/lib/j3/vm/j3classloader.cc (original)
+++ vmkit/branches/mcjit/lib/j3/vm/j3classloader.cc Sat Jan  4 12:05:59 2014
@@ -43,6 +43,7 @@ uint32_t J3ClassLoader::interfaceIndex(J
 
 	if(it == interfaces.end()) {
 		res = interfaces.size();
+		fprintf(stderr, " new interface: %s::%s%s ---> %d\n", method->cl()->name()->cStr(), method->name()->cStr(), method->signature()->name()->cStr(), res);
 		interfaces[method] = res;
 	} else {
 		res = it->second;

Modified: vmkit/branches/mcjit/lib/j3/vm/j3trampoline.cc
URL: http://llvm.org/viewvc/llvm-project/vmkit/branches/mcjit/lib/j3/vm/j3trampoline.cc?rev=198508&r1=198507&r2=198508&view=diff
==============================================================================
--- vmkit/branches/mcjit/lib/j3/vm/j3trampoline.cc (original)
+++ vmkit/branches/mcjit/lib/j3/vm/j3trampoline.cc Sat Jan  4 12:05:59 2014
@@ -20,7 +20,7 @@ void* J3Trampoline::interfaceTrampoline(
 		res = desc->methods[0]->fnPtr();
 		handle->vt()->_interfaceMethodTable[index] = res;
 	} else
-		J3::internalError("implement me: interface Trampoline with collision");
+		J3::internalError("implement me: interface Trampoline with collision: %d", desc->nbMethods);
 
 	J3Thread::get()->restore(prev);
 





More information about the vmkit-commits mailing list