Return-Path: Delivered-To: apmail-harmony-dev-archive@www.apache.org Received: (qmail 38858 invoked from network); 29 Nov 2009 20:56:38 -0000 Received: from hermes.apache.org (HELO mail.apache.org) (140.211.11.3) by minotaur.apache.org with SMTP; 29 Nov 2009 20:56:38 -0000 Received: (qmail 96991 invoked by uid 500); 29 Nov 2009 20:56:37 -0000 Delivered-To: apmail-harmony-dev-archive@harmony.apache.org Received: (qmail 96909 invoked by uid 500); 29 Nov 2009 20:56:36 -0000 Mailing-List: contact dev-help@harmony.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@harmony.apache.org Delivered-To: mailing list dev@harmony.apache.org Received: (qmail 96898 invoked by uid 99); 29 Nov 2009 20:56:36 -0000 Received: from nike.apache.org (HELO nike.apache.org) (192.87.106.230) by apache.org (qpsmtpd/0.29) with ESMTP; Sun, 29 Nov 2009 20:56:36 +0000 X-ASF-Spam-Status: No, hits=-0.0 required=10.0 tests=SPF_PASS X-Spam-Check-By: apache.org Received-SPF: pass (nike.apache.org: domain of timprepscius@gmail.com designates 209.85.211.176 as permitted sender) Received: from [209.85.211.176] (HELO mail-yw0-f176.google.com) (209.85.211.176) by apache.org (qpsmtpd/0.29) with ESMTP; Sun, 29 Nov 2009 20:56:23 +0000 Received: by ywh6 with SMTP id 6so1969096ywh.4 for ; Sun, 29 Nov 2009 12:56:01 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:mime-version:received:in-reply-to:references :date:message-id:subject:from:to:content-type :content-transfer-encoding; bh=fH7HXrWukltRjZ4engF/4rL8x8jSZkX5QqjwU6UZX2E=; b=vxbqRc+pZ8LYFhoaj9hFATyOfhsqJAeBrpaxd316u8H0mRnUDMCG7bLfColGx3CeXh A/SzDDxjUnXRvVtUR3KKVE8Bm9CzuEOpcD54iUd/G/o4G4sc1uC8VhUcJqC8VwTr+Bju XlNlPLLxKm5dnyBntgagI2SLa93/y+yZUwBnE= DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :content-type:content-transfer-encoding; b=saNlKg8ZDip7xgjIvbv46Theyu/PbplEWb3EgUtics0nUA3ynDHMSgW8fEBQs9N2NJ 7fhwm5SeETzu4r/b6O9IvkSDrdueg+eavVP4qI1149bK17PHABjqbdZWWD7dW+58T10C x8LH0mZA6Q0VUzFmEzCk3K9qf+2khyTiNfqCQ= MIME-Version: 1.0 Received: by 10.100.129.6 with SMTP id b6mr1206926and.152.1259528161784; Sun, 29 Nov 2009 12:56:01 -0800 (PST) In-Reply-To: <6fcb94430911271612ofbf921ema2c5b00f98fab284@mail.gmail.com> References: <6fcb94430911221852m182638dcq71653d67dbf2cc75@mail.gmail.com> <9623c9a50911230054q2d473657t951301d6b69cdb9@mail.gmail.com> <6fcb94430911271612ofbf921ema2c5b00f98fab284@mail.gmail.com> Date: Sun, 29 Nov 2009 10:56:01 -1000 Message-ID: <6fcb94430911291256m1eb022ffrfeaa90efbf001c0@mail.gmail.com> Subject: Re: harmony vm as a lib From: Tim Prepscius To: dev@harmony.apache.org Content-Type: text/plain; charset=KOI8-R Content-Transfer-Encoding: quoted-printable X-Virus-Checked: Checked by ClamAV on apache.org I thought I would give an update, since I have spent many an hour, since the last post, and I will not be able to spend much time for a little while. So I've discovered several defines. =9ASTATIC_BUILD, USE_GC_STATIC, DYNAMIC_OPEN to name a few. I've also discovered how to set defines in the build xml. =9AAcross the whole project. Well sort of. If it includes compile-cc Basically, my current step is getting the GC to statically link. cause there is that gc_init() call in the processing of dlls, which fails. =9ACause it turns out that gc_init, atleast before, was a function pointer. I sort of wonder why there isn't a standard interface mechanism like: getComponent (*nameOrWhatNot) { getComponentFactoryRegistry::getInstance()->getInterface(nameOrWhatNot); In which static components would register themselves during startup.. via startup code. And dynamic components could be sought after. } There is actually the building blocks of how to do this really cleanly in Eberly's graphics library if anyone is interested. oh well.. I'm sure there is a reason this isn't done. So much code is here.. Not complaining! :-) So as I got the GC to compile as a static, it then in turns needs all of these other libraries to be proper statics as well. =9AAnd so now, I recompile my simple javacreatevm project and I see warnings like this: 1>em.lib(DrlEMImpl.obj) : warning LNK4217: locally defined symbol _vm_create_helper_for_function imported in function "private: void __thiscall DrlEMImpl::initProfileAccess(void)" (?initProfileAccess@DrlEMImpl@@AAEXXZ) I'm going through and finding out which define was used as a prep for vm_create_helper_for_function, in this case VMEXPORT: VMEXPORT void * vm_create_helper_for_function(void* (*fptr)(void*)) And I'm trying to figure out why in the case of whatever library has vm_create_helper_function it was a stdcall (or something like that), and in the case of EM it was imported. This involves searching for where VMEXPORT is defined. =9ALooking at the surrounding #ifdefs, and figuring out what I need to define in the project xml. =9AAnd then I have to look in the project xml and see if it uses the base compile-cc, if it doesn't I need to add the defines to that project xml.. (as in the case of "encoder") Perhaps there is some sort of base compiler definition I should be changing somewhere. =9A Haven't yet found it. Anyone? ... Is there a list of these defines anywhere, so I could reduce this search ti= me? .. Finally, I've only found one definite bug so far: search for=9A+GCExport I_32 gc_get_hashcode0 (Managed_Object_Handle p_object); in the text below. gc_get_hashcode was declared twice. compiler doesn't care since they are identical. But I think the second one needs to be with a 0 on the end. Maybe this isn't a definite bug :-) Actually not quite sure yet. --- Here is current diff.. I wonder if I should post these diffs differently. I have a feeling it will be quite long when I'm done. Hopefully not. Disk space is cheap I guess. =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D SNIP Index: harmony/working_vm/vm/include/jni_types.h =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D --- harmony/working_vm/vm/include/jni_types.h (revision 883577) +++ harmony/working_vm/vm/include/jni_types.h (working copy) @@ -49,8 +49,13 @@ */ #if defined (_WIN32) || defined (__WIN32__) || defined (WIN32) +#if defined(STATIC_BUILD) +#define JNIEXPORT +#define JNIIMPORT +#else #define JNIEXPORT __declspec(dllexport) #define JNIIMPORT __declspec(dllimport) +#endif #define JNICALL __stdcall typedef signed __int64 jlong; Index: harmony/working_vm/vm/include/open/gc.h =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D --- harmony/working_vm/vm/include/open/gc.h (revision 883577) +++ harmony/working_vm/vm/include/open/gc.h (working copy) @@ -61,6 +61,7 @@ #define GCExport #endif /* #ifndef PLATFORM_POSIX */ +=09 #define BITS_PER_BYTE 8 // Signed arithmetic is used when we do allocation pointer/limit compares. @@ -762,7 +763,7 @@ /** * Get object hashcode. */ -GCExport I_32 gc_get_hashcode (Managed_Object_Handle p_object); +GCExport I_32 gc_get_hashcode0 (Managed_Object_Handle p_object); /** * Iterate all live objects in heap. Index: harmony/working_vm/vm/include/open/platform_types.h =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D --- harmony/working_vm/vm/include/open/platform_types.h (revision 883577) +++ harmony/working_vm/vm/include/open/platform_types.h (working copy) @@ -25,7 +25,8 @@ /** * DLL stuff */ -#if defined(PLATFORM_POSIX) || (defined(USE_STATIC_GC) && defined(BUILDING= _GC)) +#if defined(PLATFORM_POSIX) || (defined(USE_STATIC_GC) && defined(BUILDING_GC)) || defined(STATIC_BUILD) +#pragma message("CORRECT VMEXPORT") #define VMEXPORT #define VMIMPORT @@ -33,13 +34,9 @@ #define EMEXPORT #else // !PLATFORM_POSIX +#pragma message("NOT CORRECt VMEXPORT!!!!!!!!!!!!!!!!!!!!!!!!!!!!!") -#if defined(STATIC_BUILD) -#define VMEXPORT -#define JITEXPORT -#define EMEXPORT -#define VMIMPORT -#elif defined(BUILDING_VM) +#if defined(BUILDING_VM) #define VMEXPORT __declspec(dllexport) #define JITEXPORT __declspec(dllimport) #define EMEXPORT __declspec(dllimport) Index: harmony/working_vm/vm/include/em_intf.h =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D --- harmony/working_vm/vm/include/em_intf.h (revision 883577) +++ harmony/working_vm/vm/include/em_intf.h (working copy) @@ -22,6 +22,7 @@ #include "open/types.h" #include "open/em.h" +#include "open/compmgr.h" #include #ifdef __cplusplus @@ -30,6 +31,11 @@ VMEXPORT JIT_Handle vm_load_jit(const char* file_name, apr_dso_handle_t** handle); +EMEXPORT +int EmInitialize(OpenComponentHandle* p_component, + OpenInstanceAllocatorHandle* p_allocator, + apr_pool_t* pool); + #ifdef __cplusplus } #endif Index: harmony/working_vm/vm/interpreter/src/interp_exports.cpp =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D --- harmony/working_vm/vm/interpreter/src/interp_exports.cpp (revision 8835= 77) +++ harmony/working_vm/vm/interpreter/src/interp_exports.cpp (working copy) @@ -25,11 +25,7 @@ typedef void *GC_Enumeration_Handle; -#ifndef PLATFORM_POSIX -#define EXPORT __declspec(dllexport) -#else -#define EXPORT -#endif +#define EXPORT JITEXPORT extern "C" { extern void EXPORT JIT_init(JIT_Handle h, const char* name, vm_adaptor_t adaptor); Index: harmony/working_vm/vm/vmcore/src/gc/dll_gc.cpp =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D --- harmony/working_vm/vm/vmcore/src/gc/dll_gc.cpp (revision 883577) +++ harmony/working_vm/vm/vmcore/src/gc/dll_gc.cpp (working copy) @@ -17,8 +17,7 @@ #define LOG_DOMAIN "vm.core" #include "cxxlog.h" -#ifndef USE_GC_STATIC - +#if !defined(USE_GC_STATIC) #include #include #include "dll_gc.h" Index: harmony/working_vm/vm/vmcore/src/jvmti/jvmti_roots.cpp =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D --- harmony/working_vm/vm/vmcore/src/jvmti/jvmti_roots.cpp (revision 883577= ) +++ harmony/working_vm/vm/vmcore/src/jvmti/jvmti_roots.cpp (working copy) @@ -337,7 +337,11 @@ void ti_enumerate_roots(TIEnv *ti_env, hythread_iterator_t iterator) { - TRACE2("ti.trace", "enumerating roots"); +#if defined(USE_GC_STATIC) + // TJP.. THIS FUNCTION WON'T WORK WITH STATIC GC + assert(false); +#else + TRACE2("ti.trace", "enumerating roots"); // FIXME: weird function table manipulations void (*save_gc_add_root_set_entry) @@ -392,4 +396,5 @@ save_gc_add_compressed_root_set_entry; TRACE2("ti.trace", "completed root enumeration"); +#endif } Index: harmony/working_vm/vm/vmcore/src/init/vm_init.cpp =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D --- harmony/working_vm/vm/vmcore/src/init/vm_init.cpp (revision 883577) +++ harmony/working_vm/vm/vmcore/src/init/vm_init.cpp (working copy) @@ -53,6 +53,8 @@ #include "jit_intf.h" #include "signals.h" +#include "em_intf.h" + #ifdef _WIN32 // 20040427 Used to turn on heap checking on every allocation #include @@ -174,17 +176,25 @@ #define GC_DLL (vm_env->compress_references ? GC_DLL_COMP : GC_DLL_UNCOMP) #endif +static jint process_properties_dlls_statics (Global_Env *vm_env) +{ + CmAddComponent (&EmInitialize); + return JNI_OK; +} + /** * Loads DLLs. */ static jint process_properties_dlls(Global_Env * vm_env) { + process_properties_dlls_statics (vm_env); + jint status; if (!vm_env->VmProperties()->is_set("vm.em_dll")) { vm_env->VmProperties()->set("vm.em_dll", PORT_DSO_NAME("em")); } - +/* char* dll =3D vm_env->VmProperties()->get("vm.em_dll"); TRACE("analyzing em dll " << dll); status =3D CmLoadComponent(dll, "EmInitialize"); @@ -193,6 +203,7 @@ LWARN(13, "Cannot load EM component from {0}" << dll); return status; } +*/ status =3D vm_env->cm->GetComponent(&(vm_env->em_component), OPEN_EM); if (JNI_OK !=3D status) { Index: harmony/working_vm/vm/vmcore/src/thread/verify_stack_enumeration.cpp =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D --- harmony/working_vm/vm/vmcore/src/thread/verify_stack_enumeration.cpp (r= evision 883577) +++ harmony/working_vm/vm/vmcore/src/thread/verify_stack_enumeration.cpp (w= orking copy) @@ -96,6 +96,11 @@ void verify_stack_enumeration() { +#if defined(USE_STATIC_GC) || defined(STATIC_BUILD) + // TJP THIS FUNCTION WILL NOT WORK WITH STATIC GC + assert (false); +#else + // XXX: workaround to avoid infinite recursion // due to suspend_enable() in vm_gc_lock_enum() verify_stack_enumeration_flag =3D false; @@ -194,6 +199,7 @@ // switch back to verification enabled // mode after releasing gc lock. verify_stack_enumeration_flag =3D true; +#endif } // Let it be literate :) Index: harmony/working_vm/vm/jitrino/src/vm/VMInterface.cpp =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D --- harmony/working_vm/vm/jitrino/src/vm/VMInterface.cpp (revision 883577) +++ harmony/working_vm/vm/jitrino/src/vm/VMInterface.cpp (working copy) @@ -22,7 +22,7 @@ #include "mkernel.h" -#define DYNAMIC_OPEN +//#define DYNAMIC_OPEN #include "VMInterface.h" #include "open/vm_properties.h" #include "open/vm_class_manipulation.h" @@ -46,11 +46,14 @@ #include "PlatformDependant.h" #include "VMMagic.h" +#include "open/hythread.h" +#include "open/hythread_ext.h" namespace Jitrino { vm_adaptor_t VMInterface::vm =3D 0; +#if defined(DYNAMIC_OPEN) static allocation_handle_get_class_t allocation_handle_get_class =3D 0; @@ -433,8 +436,16 @@ return NULL !=3D vm(id); } +#else +IDATA vm_tls_alloc (hythread_tls_key_t * handle) { return hythread_tls_alloc(handle); } +UDATA vm_tls_get_offset (hythread_tls_key_t key) { return hythread_tls_get_offset(key); } +UDATA vm_tls_get_request_offset () { return hythread_tls_get_request_offset(); } +UDATA vm_tls_is_fast () { return hythread_uses_fast_tls(); } +IDATA vm_get_tls_offset_in_segment () { return hythread_get_hythread_offset_in_tls(); } +#endif + // The JIT info block is laid out as: // header // stack info Index: harmony/working_vm/make/vm/em.xml =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D --- harmony/working_vm/make/vm/em.xml (revision 883577) +++ harmony/working_vm/make/vm/em.xml (working copy) @@ -23,7 +23,7 @@ - + @@ -36,6 +36,8 @@ + + Index: harmony/working_vm/make/vm/gc_gen.xml =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D --- harmony/working_vm/make/vm/gc_gen.xml (revision 883577) +++ harmony/working_vm/make/vm/gc_gen.xml (working copy) @@ -114,7 +114,7 @@ - + @@ -127,7 +127,7 @@ - + Index: harmony/working_vm/make/vm/interpreter.xml =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D --- harmony/working_vm/make/vm/interpreter.xml (revision 883577) +++ harmony/working_vm/make/vm/interpreter.xml (working copy) @@ -78,7 +78,7 @@ - + Index: harmony/working_vm/make/vm/port.xml =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D --- harmony/working_vm/make/vm/port.xml (revision 883577) +++ harmony/working_vm/make/vm/port.xml (working copy) @@ -83,7 +83,7 @@ - + Index: harmony/working_vm/make/vm/vmcore.xml =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D --- harmony/working_vm/make/vm/vmcore.xml (revision 883577) +++ harmony/working_vm/make/vm/vmcore.xml (working copy) @@ -215,7 +215,7 @@ - + @@ -224,8 +224,8 @@ - - + Index: harmony/working_vm/make/vm/vmi.xml =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D --- harmony/working_vm/make/vm/vmi.xml (revision 883577) +++ harmony/working_vm/make/vm/vmi.xml (working copy) @@ -23,7 +23,7 @@ - + @@ -35,8 +35,9 @@ + - + Index: harmony/working_vm/make/vm/hythr.xml =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D --- harmony/working_vm/make/vm/hythr.xml (revision 883577) +++ harmony/working_vm/make/vm/hythr.xml (working copy) @@ -24,7 +24,7 @@ - + @@ -46,7 +46,7 @@ - + Index: harmony/working_vm/make/vm/jitrino.xml =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D --- harmony/working_vm/make/vm/jitrino.xml (revision 883577) +++ harmony/working_vm/make/vm/jitrino.xml (working copy) @@ -83,10 +83,10 @@ - + - + Index: harmony/working_vm/make/vm/port_ch.xml =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D --- harmony/working_vm/make/vm/port_ch.xml (revision 883577) +++ harmony/working_vm/make/vm/port_ch.xml (working copy) @@ -100,7 +100,7 @@ - + @@ -122,7 +122,7 @@ - + Index: harmony/working_vm/make/vm/encoder.xml =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D --- harmony/working_vm/make/vm/encoder.xml (revision 883577) +++ harmony/working_vm/make/vm/encoder.xml (working copy) @@ -36,6 +36,10 @@ + + + + Index: harmony/working_vm/make/build-native.xml =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D --- harmony/working_vm/make/build-native.xml (revision 883577) +++ harmony/working_vm/make/build-native.xml (working copy) @@ -140,6 +140,10 @@ + + + + @@ -151,7 +155,7 @@ - + Index: harmony/working_vm/make/extra/apr.xml =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D --- harmony/working_vm/make/extra/apr.xml (revision 883577) +++ harmony/working_vm/make/extra/apr.xml (working copy) @@ -133,7 +133,7 @@ - + 2009/11/27 Tim Prepscius > > Thanks for all of the input. =9AI really appreciate it. > > I guess I'll post progress to this thread, so that if someone else > wishes to do something similar, my successes and failures will be > available as some kind of road map. > > If you see me doing something which is an incredibly stupid thing to > do, if I only knew this other way which is simple and nice.. =9ALet me > know! > > Here is the current state of things. > > 1) I have gotten stuff. > > 1.5) the msvc solutions are not up to date. =9Aoh well. > > 2) The full classlib doesn't fully build cause it needs atl* ... but > I've read online, this is because of swing.. don't need swing. > somehow not sure how to just tell it not to build this part > > 2.5) The vm, amazingly, builds. :-) > > 3) I've figured out the any xml build files enough to be able to > change things to static libraries, and exclude the /OPT:REF options > (which I don't want) > > 4) I've gotten the ICU lib, and have changed things to compile as > static LIBs.. Except for that one dll, where the programmer *really* > wanted to use makefiles.. ... =9A sigh. =9AAnd of course his makefile is > non-standard as they all are. =9ASo will take a while to figure out what > to change. > > 4.5) I have zlib from the main game-project compiling as static lib > > 5) I've changed the JNIEXPORT define to not do the dllexport... I > think I'll need to do this with all of the other libraries as well. > Wish they all used some underlying REALLY_DO_DLLEXPORT define or > something, but oh well. > > 6) I've created a msvc solution that includes all of the newly created > static libs. =9AAnd a simple .cpp file which =9A calls the > JNI_CreateJavaVM. =9AAmazingly things link, and run. =9AHowever, dieing o= n > errors of course when it tries to load dll libraries. > > Next step seems to me to be modifying the dll loading function > "process_properties_dlls" into a "process_properties_statics." =9ADon't > know what will be necessary for this: > > ------------------------------------------------------------------ > I like to make batch files which can replicate work.. For an accurate > record, and cause I need to eventually build lots of different places. > > Here they are: > ------------------------------------------------------------------- > C:\source3>type setup.bat > call "C:\Program Files\Microsoft Visual Studio 9.0\VC\vcvarsall.bat" x86 > set ANT_HOME=3DC:\ant > set JAVA_HOME=3DC:\Program Files\Java\jdk1.6.0_17 > set PATH=3D%PATH%;%ANT_HOME%\bin;c:\cygwin\bin > set ANT_OPTS=3D-Xms256m -Xmx512m > > rem #####################################################################= ########## > > if exist %ANT_HOME%\lib\ecj-* goto ECJ_OK > echo Things won't work without ECJ, get 3.4.2 from > http://download.eclipse.org/eclipse/downloads/ and put it in > %ANT_HOME%\lib > goto END > :ECJ_OK > > if exist %windir%\system32\msvcr71* goto MSVC71_OK > echo Somehow, they really really want msvcr71.dll, msvcp71.dll, you > can google and download it.. stick it in %windir%\system32 > goto END > :MSVC71_OK > > rem #####################################################################= ############ > > > :END > > C:\source3>type build1.bat > call setup.bat > > svn co http://svn.apache.org/repos/asf/harmony/enhanced/trunk harmony > > cd harmony > cmd /C ant populate-src > cd .. > > > C:\source3>type build2.bat > cd harmony > cd working_classlib > > cmd /C ant fetch-depends > cmd /C ant > > cd .. > cd .. > > C:\source3>type build3.bat > cd harmony > cd working_vm > > rmdir /s /q build\windows_x86_msvc_debug > rmdir /s /q build\windows_x86_msvc_release > > cmd /C ant -Dexclude.module=3Dswing > cmd /C ant -Dexclude.module=3Dswing -Dhy.cfg=3Drelease > > cd .. > cd .. > > -------------------------------- > > Diff of files as of now: > > Index: harmony/working_vm/vm/include/jni_types.h > =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D > --- harmony/working_vm/vm/include/jni_types.h =9A (revision 883577) > +++ harmony/working_vm/vm/include/jni_types.h =9A (working copy) > @@ -49,8 +49,10 @@ > =9A*/ > =9A#if defined (_WIN32) || defined (__WIN32__) || defined (WIN32) > > -#define JNIEXPORT __declspec(dllexport) > -#define JNIIMPORT __declspec(dllimport) > +//#define JNIEXPORT __declspec(dllexport) > +//#define JNIIMPORT __declspec(dllimport) > +#define JNIEXPORT > +#define JNIIMPORT > =9A#define JNICALL __stdcall > > =9Atypedef signed __int64 jlong; > Index: harmony/working_vm/vm/vmcore/src/init/vm_init.cpp > =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D > --- harmony/working_vm/vm/vmcore/src/init/vm_init.cpp =9A (revision 88357= 7) > +++ harmony/working_vm/vm/vmcore/src/init/vm_init.cpp =9A (working copy) > @@ -174,6 +174,11 @@ > =9A#define GC_DLL (vm_env->compress_references ? GC_DLL_COMP : GC_DLL_UNC= OMP) > =9A#endif > > +static jint process_properties_dlls_statics (Global_Env *vm_env) > +{ > + =9A =9Ajint status; > + =9A =9A =9A return status; > +} > > =9A/** > =9A* Loads DLLs. > Index: harmony/working_vm/make/vm/em.xml > =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D > --- harmony/working_vm/make/vm/em.xml =9A (revision 883577) > +++ harmony/working_vm/make/vm/em.xml =9A (working copy) > @@ -23,7 +23,7 @@ > > =9A =9A > =9A =9A =9A =9A > - =9A =9A =9A =9A > + =9A =9A =9A =9A > =9A =9A =9A =9A > =9A =9A =9A =9A =9A =9A > =9A =9A =9A =9A =9A =9A =9A =9A > Index: harmony/working_vm/make/vm/gc_gen.xml > =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D > --- harmony/working_vm/make/vm/gc_gen.xml =9A =9A =9A (revision 883577) > +++ harmony/working_vm/make/vm/gc_gen.xml =9A =9A =9A (working copy) > @@ -114,7 +114,7 @@ > =9A =9A =9A =9A > =9A =9A =9A =9A =9A =9A > =9A =9A =9A =9A > - =9A =9A =9A =9A > + =9A =9A =9A =9A > =9A =9A =9A =9A =9A =9A > =9A =9A =9A =9A > =9A =9A > @@ -127,7 +127,7 @@ > =9A =9A =9A =9A =9A =9A > =9A =9A =9A =9A =9A =9A > =9A =9A =9A =9A > - =9A =9A =9A =9A > + =9A =9A =9A =9A > =9A =9A =9A =9A =9A =9A > =9A =9A =9A =9A > =9A =9A > Index: harmony/working_vm/make/vm/interpreter.xml > =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D > --- harmony/working_vm/make/vm/interpreter.xml =9A(revision 883577) > +++ harmony/working_vm/make/vm/interpreter.xml =9A(working copy) > @@ -78,7 +78,7 @@ > =9A =9A =9A =9A > =9A =9A =9A =9A > > - =9A =9A =9A =9A > + =9A =9A =9A =9A > =9A =9A =9A =9A =9A =9A > =9A =9A =9A =9A =9A =9A =9A =9A value=3D"--version-script=3D${vm.home}/interpreter/build/interpreter.exp" > if=3D"is.unix"/> > =9A =9A =9A =9A =9A =9A =9A =9A > Index: harmony/working_vm/make/vm/vmcore.xml > =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D > --- harmony/working_vm/make/vm/vmcore.xml =9A =9A =9A (revision 883577) > +++ harmony/working_vm/make/vm/vmcore.xml =9A =9A =9A (working copy) > @@ -215,7 +215,7 @@ > =9A =9A =9A =9A > =9A =9A =9A =9A > > - =9A =9A =9A =9A > + =9A =9A =9A =9A > =9A =9A =9A =9A =9A =9A > =9A =9A =9A =9A =9A =9A =9A =9A =9A =9A =9A =9A =9A =9A =9A =9A =9A =9A dir=3D"${drlvm.lib.dir}" /> > @@ -224,8 +224,8 @@ > =9A =9A =9A =9A =9A =9A =9A =9A > =9A =9A =9A =9A =9A =9A =9A =9A > > - =9A =9A =9A =9A =9A =9A =9A =9A value=3D"/DEF:${vm.home}/vmcore/src/harmonyvm64.def" > if=3D"is.windows.x86_64"/> > - =9A =9A =9A =9A =9A =9A =9A =9A value=3D"/DEF:${vm.home}/vmcore/src/harmonyvm.def" if=3D"is.windows.x86"/= > > + > =9A =9A =9A =9A =9A =9A =9A =9A value=3D"--version-script=3D${vm.home}/vmcore/build/vmcore.exp" > if=3D"is.unix"/> > > =9A =9A =9A =9A =9A =9A =9A =9A libs=3D"m,dl,stdc++,z,xml2,pthread,gcc_s,rt" if=3D"is.linux"/> > Index: harmony/working_vm/make/vm/vmi.xml > =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D > --- harmony/working_vm/make/vm/vmi.xml =9A(revision 883577) > +++ harmony/working_vm/make/vm/vmi.xml =9A(working copy) > @@ -23,7 +23,7 @@ > > =9A =9A > =9A =9A =9A =9A > - =9A =9A =9A =9A > + =9A =9A =9A =9A > =9A =9A =9A =9A =9A =9A > =9A =9A =9A =9A =9A =9A =9A =9A > =9A =9A =9A =9A =9A =9A =9A =9A =9A =9A > Index: harmony/working_vm/make/vm/hythr.xml > =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D > --- harmony/working_vm/make/vm/hythr.xml =9A =9A =9A =9A(revision 883577) > +++ harmony/working_vm/make/vm/hythr.xml =9A =9A =9A =9A(working copy) > @@ -24,7 +24,7 @@ > =9A =9A > =9A =9A =9A =9A > > - =9A =9A =9A =9A > + =9A =9A =9A =9A > =9A =9A =9A =9A > =9A =9A =9A =9A =9A =9A > =9A =9A =9A =9A =9A =9A =9A > @@ -46,7 +46,7 @@ > =9A =9A =9A =9A =9A =9A =9A =9A =9A =9A =9A =9A =9A =9A =9A =9A dir=3D"${drlvm.lib.dir}" /> > > - =9A =9A =9A =9A =9A =9A if=3D"is.windows"/> > + > > =9A =9A =9A =9A =9A =9A > =9A =9A =9A =9A =9A =9A > Index: harmony/working_vm/make/vm/jitrino.xml > =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D > --- harmony/working_vm/make/vm/jitrino.xml =9A =9A =9A(revision 883577) > +++ harmony/working_vm/make/vm/jitrino.xml =9A =9A =9A(working copy) > @@ -83,10 +83,10 @@ > =9A =9A =9A =9A =9A =9A =9A =9A > =9A =9A =9A =9A =9A =9A > =9A =9A =9A =9A > - =9A =9A =9A =9A > + =9A =9A =9A =9A > =9A =9A =9A =9A =9A =9A > =9A =9A =9A =9A =9A =9A =9A =9A dir=3D"${drlvm.lib.dir}" if=3D"is.windows"/> > - =9A =9A =9A =9A =9A =9A =9A =9A > + > > =9A =9A =9A =9A =9A =9A =9A =9A > =9A =9A =9A =9A =9A =9A =9A =9A > Index: harmony/working_vm/make/vm/port_ch.xml > =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D > --- harmony/working_vm/make/vm/port_ch.xml =9A =9A =9A(revision 883577) > +++ harmony/working_vm/make/vm/port_ch.xml =9A =9A =9A(working copy) > @@ -122,7 +122,7 @@ > =9A =9A =9A =9A =9A =9A > =9A =9A =9A =9A > > - =9A =9A =9A =9A > + =9A =9A =9A =9A > =9A =9A =9A =9A =9A =9A > =9A =9A =9A =9A =9A =9A =9A =9A > > Index: harmony/working_vm/make/build-native.xml > =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D > --- harmony/working_vm/make/build-native.xml =9A =9A(revision 883577) > +++ harmony/working_vm/make/build-native.xml =9A =9A(working copy) > @@ -151,7 +151,7 @@ > =9A =9A =9A =9A =9A =9A =9A =9A > =9A =9A =9A =9A =9A =9A =9A =9A =9A =9A > =9A =9A =9A =9A =9A =9A =9A =9A =9A =9A =9A =9A > - =9A =9A =9A =9A =9A =9A =9A =9A =9A =9A =9A =9A > + =9A =9A =9A =9A =9A =9A =9A =9A =9A =9A =9A =9A > =9A =9A =9A =9A =9A =9A =9A =9A =9A =9A > =9A =9A =9A =9A =9A =9A =9A =9A > > > On 11/22/09, Alexei Fedotov wrote: > > Tim, > > As for your willingness to create a lib, VM is a lib already [1], an > > is successfully used in browser plug-ins. > > > > [1] http://java.sun.com/j2se/1.4.2/docs/guide/jni/spec/invocation.html > > > > On Mon, Nov 23, 2009 at 11:54 AM, Xiao-Feng Li > > wrote: > >> To reduce Harmony VM (DRLVM) is possible - and not very difficult. JIT > >> and GC are modules that you can easily replace with very simple ones. > >> Other modules can be largely reduced as well if you do not need them, > >> e.g., threading, verifier, profiler, etc. I don't know your > >> performance target, but my personal preference usually is to keep a > >> simple JIT for the execution engine rather than the interpreter. > >> > >> Thanks, > >> xiaofeng > >> > >> On Mon, Nov 23, 2009 at 10:52 AM, Tim Prepscius > >> wrote: > >>> Greetings, > >>> > >>> I have been searching for a non-gpl replacement for sun's java for > >>> quite a while now. =9AI can't believe I didn't see your project until > >>> this month. =9ALet me tell you, when I saw your code I almost cried. > >>> (haha, well, maybe not cried) > >>> > >>> It's really, really nice. =9AAnd I have not run yet into a hundred li= ne > >>> #define (as in "dalvik") yet. > >>> Anyhow. > >>> > >>> > >>> This is what I'd like to do. =9AI'm wondering whether anyone would > >>> comment on accomplishing this, if it is possible. > >>> Who knows, maybe somebody else has fiddled around with this. > >>> > >>> What I'm looking for: > >>> > >>> 1. =9AI'm really not looking for java. =9AI'm looking for a > >>> micro-edition-ish java to embed in a video game engine. > >>> > >>> 2. =9ADon't need JIT, don't need two garbage collectors - 1 will do, > >>> don't need the JVM to be accessible to the outside world. Don't need > >>> almost *all* of the class libraries. =9ADon't need sockets (except fo= r > >>> debugging). =9ADon't actually need threads (I disable their creation = via > >>> the security manager anyway), but I suppose this is necessary for GC = & > >>> Debug. > >>> > >>> 3. Need JNI, which I see you have. > >>> > >>> So what I'm thinking I'd like to do: > >>> > >>> > >>> Optimally I'd like to create a lib out of harmony-vm. =9AStatically l= ink > >>> with my application. =9ACreate a single jar with all of my necessary > >>> classes, cutting out all of the java extra stuff (everything pretty > >>> much) > >>> > >>> If creating a lib creates problems for JNI (what problems I don't > >>> know), I'd like to combine all of your dlls into one massive dll. > >>> Then I was thinking, that after getting this done, I'd start cutting > >>> out modules. =9AAnd try to reduce everything to under 1 meg. > >>> > >>> -- > >>> > >>> Is this crazy? > >>> > >>> Thanks in advance, > >>> > >>> -tim > >>> > >> > >> > >> > >> -- > >> http://people.apache.org/~xli > >> > > > > > > > > -- > > With best regards / =D3 =CE=C1=C9=CC=D5=DE=DB=C9=CD=C9 =D0=CF=D6=C5=CC= =C1=CE=C9=D1=CD=C9, > > Alexei Fedotov / =E1=CC=C5=CB=D3=C5=CA =E6=C5=C4=CF=D4=CF=D7, > > http://www.telecom-express.ru/ > > http://harmony.apache.org/ > > http://www.expressaas.com/ > > http://openmeetings.googlecode.com/ > >