[vmkit-commits] [vmkit] r198527 - Add path properties.

Gael Thomas gael.thomas at lip6.fr
Sat Jan 4 16:34:45 PST 2014


Author: gthomas
Date: Sat Jan  4 18:34:44 2014
New Revision: 198527

URL: http://llvm.org/viewvc/llvm-project?rev=198527&view=rev
Log:
Add path properties.

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

Modified: vmkit/branches/mcjit/include/j3/j3classloader.h
URL: http://llvm.org/viewvc/llvm-project/vmkit/branches/mcjit/include/j3/j3classloader.h?rev=198527&r1=198526&r2=198527&view=diff
==============================================================================
--- vmkit/branches/mcjit/include/j3/j3classloader.h (original)
+++ vmkit/branches/mcjit/include/j3/j3classloader.h Sat Jan  4 18:34:44 2014
@@ -81,7 +81,7 @@ namespace j3 {
 		J3ZipArchive*                                     archive;
 		std::map<const char*, const char*, char_ptr_less> _cmangled;
 	public:
-		J3InitialClassLoader(const char* rtjar, vmkit::BumpAllocator* allocator);
+		J3InitialClassLoader(vmkit::BumpAllocator* allocator);
 
 		J3Class*    loadClass(const vmkit::Name* name);
 		const char* cmangled(const char* demangled) { return _cmangled[demangled]; }

Modified: vmkit/branches/mcjit/include/j3/j3lib.h
URL: http://llvm.org/viewvc/llvm-project/vmkit/branches/mcjit/include/j3/j3lib.h?rev=198527&r1=198526&r2=198527&view=diff
==============================================================================
--- vmkit/branches/mcjit/include/j3/j3lib.h (original)
+++ vmkit/branches/mcjit/include/j3/j3lib.h Sat Jan  4 18:34:44 2014
@@ -11,6 +11,7 @@ namespace j3 {
 	class J3Lib {
 	public:
 		static const char*  systemClassesArchives();
+		static const char*  systemLibraryPath();
 		static int          loadSystemLibraries(std::vector<void*, vmkit::StdAllocator<void*> >* handles);
 
 		static void         bootstrap(J3* vm);

Modified: vmkit/branches/mcjit/include/j3/j3options.h
URL: http://llvm.org/viewvc/llvm-project/vmkit/branches/mcjit/include/j3/j3options.h?rev=198527&r1=198526&r2=198527&view=diff
==============================================================================
--- vmkit/branches/mcjit/include/j3/j3options.h (original)
+++ vmkit/branches/mcjit/include/j3/j3options.h Sat Jan  4 18:34:44 2014
@@ -25,7 +25,9 @@ namespace j3 {
 	public:
 		bool           assertionsEnabled;
 		const char*    selfBitCodePath;
-		const char*    rtJar;
+		const char*    bootClasspath;
+		const char*    systemLibraryPath;
+		const char*    classpath;
 		bool           debugEnterIndent;
 		uint32_t       genDebugExecute;
 		uint32_t       debugExecute;

Modified: vmkit/branches/mcjit/lib/j3/openjdk/j3lib.cc
URL: http://llvm.org/viewvc/llvm-project/vmkit/branches/mcjit/lib/j3/openjdk/j3lib.cc?rev=198527&r1=198526&r2=198527&view=diff
==============================================================================
--- vmkit/branches/mcjit/lib/j3/openjdk/j3lib.cc (original)
+++ vmkit/branches/mcjit/lib/j3/openjdk/j3lib.cc Sat Jan  4 18:34:44 2014
@@ -55,6 +55,10 @@ const char* J3Lib::systemClassesArchives
 	return rtjar;
 }
 
+const char* J3Lib::systemLibraryPath() {
+	return OPENJDK_LIBPATH;
+}
+
 int J3Lib::loadSystemLibraries(std::vector<void*, vmkit::StdAllocator<void*> >* nativeLibraries) {
 	/* JavaRuntimeSupport checks for a symbol defined in this library */
 	void* h0 = dlopen(OPENJDK_LIBPATH"/libinstrument"SHLIBEXT, RTLD_LAZY | RTLD_GLOBAL);

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=198527&r1=198526&r2=198527&view=diff
==============================================================================
--- vmkit/branches/mcjit/lib/j3/openjdk/j3openjdk.cc (original)
+++ vmkit/branches/mcjit/lib/j3/openjdk/j3openjdk.cc Sat Jan  4 18:34:44 2014
@@ -114,7 +114,7 @@ jobject JNICALL JVM_InitProperties(JNIEn
 																												 vm->names()->get("(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/Object;")));
 
 #define setProp(key, val) _setProp->invokeVirtual(p, vm->utfToString(key), vm->utfToString(val));
-#define setEnvProp(key, val) ({ const char* tmp = getenv(val); if(!tmp) tmp = ""; setProp(key, val); })
+#define setPropEnv(key, val) ({ const char* tmp = getenv(val); if(!tmp) tmp = ""; setProp(key, val); })
 
 	/*
 	 * <dt>java.version         <dd>Java version number
@@ -134,6 +134,11 @@ jobject JNICALL JVM_InitProperties(JNIEn
 	 * <dt>user.dir             <dd>User's current working directory
 	 */
 
+  setProp("java.class.path", vm->options()->classpath);
+  setProp("java.boot.class.path", vm->options()->bootClasspath);
+  setProp("sun.boot.library.path", vm->options()->systemLibraryPath);
+  setProp("sun.boot.class.path", vm->options()->bootClasspath);
+#if 0
   setProp("java.vm.specification.version", "1.2");
   setProp("java.vm.specification.vendor", "Sun Microsystems, Inc");
   setProp("java.vm.specification.name", "Java Virtual Machine Specification");
@@ -144,32 +149,27 @@ jobject JNICALL JVM_InitProperties(JNIEn
   setProp("java.runtime.version", "1.8");
   setProp("java.vendor", "The VMKit Project");
   setProp("java.vendor.url", "http://vmkit.llvm.org");
-	setEnvProp("java.home", "JAVA_HOME");
+	setPropEnv("java.home", "JAVA_HOME");
   setProp("java.class.version", "52.0");
   setProp("java.vm.version", "0.5");
   setProp("java.vm.vendor", "The VMKit Project");
   setProp("java.vm.name", "J3");
   setProp("java.specification.version", "1.8");
+  setPropEnv("java.library.path", "LD_LIBRARY_PATH");
 
   struct utsname infos;
   uname(&infos);
   setProp("os.name", infos.sysname);
   setProp("os.arch", infos.machine);
   setProp("os.version", infos.release);
-#if 0
 
   setProp("java.io.tmpdir", "/tmp");
   JnjvmBootstrapLoader* JCL = vm->bootstrapLoader;
-  setProperty(vm, prop, "java.class.path", vm->classpath);
-  setProperty(vm, prop, "java.boot.class.path", JCL->bootClasspathEnv);
-  setProperty(vm, prop, "sun.boot.class.path", JCL->bootClasspathEnv);
 
   setProperty(vm, prop, "build.compiler", "gcj");
   setProperty(vm, prop, "gcj.class.path", JCL->bootClasspathEnv);
   setProperty(vm, prop, "gnu.classpath.boot.library.path",
               JCL->libClasspathEnv);
-  //setProperty(vm, prop, "java.library.path", TODO: getenv("LD_LIBRARY_PATH"))
-  setProperty(vm, prop, "sun.boot.library.path", JCL->libClasspathEnv);
 
   // Align behavior with GNU Classpath for now, to pass mauve test
   setProperty(vm, prop, "sun.lang.ClassLoader.allowArraySyntax", "true");

Modified: vmkit/branches/mcjit/lib/j3/vm/j3.cc
URL: http://llvm.org/viewvc/llvm-project/vmkit/branches/mcjit/lib/j3/vm/j3.cc?rev=198527&r1=198526&r2=198527&view=diff
==============================================================================
--- vmkit/branches/mcjit/lib/j3/vm/j3.cc (original)
+++ vmkit/branches/mcjit/lib/j3/vm/j3.cc Sat Jan  4 18:34:44 2014
@@ -85,9 +85,7 @@ void J3::run() {
 	introspect();
 
 	vmkit::BumpAllocator* loaderAllocator = vmkit::BumpAllocator::create();
-	initialClassLoader = 
-		new(loaderAllocator) 
-		J3InitialClassLoader(options()->rtJar, loaderAllocator);
+	initialClassLoader = new(loaderAllocator) J3InitialClassLoader(loaderAllocator);
 
 	vmkit::BumpAllocator* a = initialClassLoader->allocator();
 

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=198527&r1=198526&r2=198527&view=diff
==============================================================================
--- vmkit/branches/mcjit/lib/j3/vm/j3classloader.cc (original)
+++ vmkit/branches/mcjit/lib/j3/vm/j3classloader.cc Sat Jan  4 18:34:44 2014
@@ -204,9 +204,9 @@ bool J3ClassLoader::J3InterfaceMethodLes
 				&& (lhs->signature() < rhs->signature()));
 }
 
-J3InitialClassLoader::J3InitialClassLoader(const char* rtjar, vmkit::BumpAllocator* _alloc) 
+J3InitialClassLoader::J3InitialClassLoader(vmkit::BumpAllocator* _alloc) 
 	: J3ClassLoader(0, _alloc) {
-	const char* archives = J3Thread::get()->vm()->options()->rtJar;
+	const char* archives = J3Thread::get()->vm()->options()->bootClasspath;
 	J3ClassBytes* bytes = J3Reader::openFile(allocator(), archives);
 
 	//makeLLVMFunctions_j3();

Modified: vmkit/branches/mcjit/lib/j3/vm/j3options.cc
URL: http://llvm.org/viewvc/llvm-project/vmkit/branches/mcjit/lib/j3/vm/j3options.cc?rev=198527&r1=198526&r2=198527&view=diff
==============================================================================
--- vmkit/branches/mcjit/lib/j3/vm/j3options.cc (original)
+++ vmkit/branches/mcjit/lib/j3/vm/j3options.cc Sat Jan  4 18:34:44 2014
@@ -11,7 +11,9 @@ using namespace j3;
 J3Options::J3Options() {
 	assertionsEnabled = 1;
 	selfBitCodePath = SELF_BITCODE;
-	rtJar = J3Lib::systemClassesArchives();
+	bootClasspath = J3Lib::systemClassesArchives();
+	systemLibraryPath = J3Lib::systemLibraryPath();
+	classpath = "";
 
 	debugEnterIndent = 1;
 





More information about the vmkit-commits mailing list