PR123: LD_LIBRARY_PATH and java.library.path
[cacao.git] / src / vm / properties.cpp
index b5868faa95817d1b857be2dc3ec9ef4fa01bd139..985791cbe39236cd50026104d495c10d14a4562a 100644 (file)
 #include <string.h>
 #include <time.h>
 #include <unistd.h>
-#include <sys/utsname.h>
 
-#include "mm/memory.h"
+#include "mm/memory.hpp"
 
 #include "native/llni.h"
 
-#include "toolbox/util.h"
-
-#include "vm/class.h"
+#include "vm/class.hpp"
 #include "vm/global.h"
-#include "vm/method.h"
+#include "vm/method.hpp"
 #include "vm/options.h"
 #include "vm/os.hpp"
 #include "vm/properties.hpp"
@@ -75,7 +72,7 @@ Properties::Properties()
        p = MNEW(char, 4096);
 
        if (os::readlink("/proc/self/exe", p, 4095) == -1)
-               VM::get_current()->abort_errno("readlink failed");
+               os::abort_errno("readlink failed");
 
        /* We have a path like:
 
@@ -317,7 +314,7 @@ Properties::Properties()
        put("java.vm.specification.version", "1.0");
        put("java.vm.specification.vendor", "Sun Microsystems Inc.");
        put("java.vm.specification.name", "Java Virtual Machine Specification");
-       put("java.vm.version", VERSION);
+       put("java.vm.version", VERSION_FULL);
        put("java.vm.vendor", "CACAOVM - Verein zur Foerderung der freien virtuellen Maschine CACAO");
        put("java.vm.name", "CACAO");
 
@@ -332,14 +329,22 @@ Properties::Properties()
        {
                /* XXX We don't support java.lang.Compiler */
 /*             put("java.compiler", "cacao.jit"); */
-               put("java.vm.info", "JIT mode");
+               put("java.vm.info", "compiled mode");
        }
 
+       // Get and set java.library.path.
+       const char* java_library_path = os::getenv("LD_LIBRARY_PATH");
+
+       if (java_library_path == NULL)
+               java_library_path = "";
+
+       put("java.library.path", java_library_path);
+
 # if defined(WITH_JAVA_RUNTIME_LIBRARY_GNU_CLASSPATH)
 
        /* Get properties from system. */
 
-       char* cwd      = _Jv_getcwd();
+       char* cwd      = os::getcwd();
 
        char* env_user = os::getenv("USER");
        char* env_home = os::getenv("HOME");
@@ -349,7 +354,7 @@ Properties::Properties()
 
        uname(utsnamebuf);
 
-       put("java.runtime.version", VERSION);
+       put("java.runtime.version", VERSION_FULL);
        put("java.runtime.name", "CACAO");
 
        put("java.specification.version", "1.5");
@@ -364,14 +369,6 @@ Properties::Properties()
 
        put("gnu.classpath.boot.library.path", boot_library_path);
 
-       // Get and set java.library.path.
-       const char* java_library_path = os::getenv("LD_LIBRARY_PATH");
-
-       if (java_library_path == NULL)
-               java_library_path = "";
-
-       put("java.library.path", java_library_path);
-
        put("java.io.tmpdir", "/tmp");
 
 #  if defined(ENABLE_INTRP)
@@ -650,13 +647,6 @@ void Properties::dump()
 #endif
 
 
-// Legacy C interface.
-extern "C" {
-       void        Properties_put(const char *key, const char *value) { VM::get_current()->get_properties().put(key, value); }
-       const char *Properties_get(const char *key) { return VM::get_current()->get_properties().get(key); }
-}
-
-
 /*
  * These are local overrides for various environment variables in Emacs.
  * Please do not remove this and leave it at the end of the file, where