- /* set the VM starttime */
-
- _Jv_jvm->starttime = builtin_currenttimemillis();
-
- /* get stuff from the environment *****************************************/
-
-#if defined(DISABLE_GC)
- nogc_init(HEAP_MAXSIZE, HEAP_STARTSIZE);
-#endif
-
-#if defined(WITH_JRE_LAYOUT)
- /* SUN also uses a buffer of 4096-bytes (strace is your friend). */
-
- cacao_prefix = MNEW(char, 4096);
-
- if (readlink("/proc/self/exe", cacao_prefix, 4095) == -1)
- vm_abort("readlink failed: %s\n", strerror(errno));
-
- /* get the path of the current executable */
-
- cacao_prefix = dirname(cacao_prefix);
-
- if ((strlen(cacao_prefix) + strlen("/..") + strlen("0")) > 4096)
- vm_abort("libjvm name to long for buffer\n");
-
- /* concatenate the library name */
-
- strcat(cacao_prefix, "/..");
-
- /* now set path to libjvm.so */
-
- len = strlen(cacao_prefix) + strlen("/lib/libjvm") + strlen("0");
-
- cacao_libjvm = MNEW(char, len);
- strcpy(cacao_libjvm, cacao_prefix);
- strcat(cacao_libjvm, "/lib/libjvm");
-
- /* and finally set the path to GNU Classpath libraries */
-
- len = strlen(cacao_prefix) + strlen("/lib/classpath") + strlen("0");
-
- classpath_libdir = MNEW(char, len);
- strcpy(classpath_libdir, cacao_prefix);
- strcat(classpath_libdir, "/lib/classpath");
-#else
- cacao_prefix = CACAO_PREFIX;
- cacao_libjvm = CACAO_LIBDIR"/libjvm";
- classpath_libdir = CLASSPATH_LIBDIR"/classpath";
-#endif
-
- /* set the bootclasspath */
-
- cp = getenv("BOOTCLASSPATH");
-
- if (cp != NULL) {
- _Jv_bootclasspath = MNEW(char, strlen(cp) + strlen("0"));
- strcpy(_Jv_bootclasspath, cp);
- }
- else {
-#if defined(WITH_JRE_LAYOUT)
- len =
- strlen(cacao_prefix) +
- strlen("/share/cacao/vm.zip") +
- strlen(":") +
- strlen(cacao_prefix) +
- strlen("/share/classpath/glibj.zip") +
- strlen("0");
-
- _Jv_bootclasspath = MNEW(char, len);
- strcat(_Jv_bootclasspath, cacao_prefix);
- strcat(_Jv_bootclasspath, "/share/cacao/vm.zip");
- strcat(_Jv_bootclasspath, ":");
- strcat(_Jv_bootclasspath, cacao_prefix);
- strcat(_Jv_bootclasspath, "/share/classpath/glibj.zip");
-#else
- len =
- strlen(CACAO_VM_ZIP) +
- strlen(":") +
- strlen(CLASSPATH_GLIBJ_ZIP) +
- strlen("0");
-
- _Jv_bootclasspath = MNEW(char, len);
- strcat(_Jv_bootclasspath, CACAO_VM_ZIP);
- strcat(_Jv_bootclasspath, ":");
- strcat(_Jv_bootclasspath, CLASSPATH_GLIBJ_ZIP);
-#endif
- }
-
- /* set the classpath */
-
- cp = getenv("CLASSPATH");