harmony-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Archie Cobbs <arc...@dellroad.org>
Subject Re: [classlib] unmodified generic GNU Classpath JVM can now run Classlib "hello world"
Date Wed, 12 Apr 2006 16:04:53 GMT
Weldon Washburn wrote:
>> There's nothing unusual about JCHEVM's native code dispatch.
>> However, JCHEVM constructs dynamic function calls itself (instead
>> of using libffi like SableVM does). So if C calling conventions under
>> Cygwin (which are what?) are different than Linux, you could see
>> misalignment of parameters, etc.
> hmmm.... this is starting to sound like classic ABI issues.  I will
> investigate and report back.  Different tool chains take different
> approaches to passing arguments.  I noticed a comment in
> arch_functions.c that says, "We use __attribute__ ((regparm(3))) which
> places the first three arguments..."  I gdb stepped through
> _jc_dynamic_invoke() and noticed that it copies three slots off of the
> machine stack and puts them in registers.  I guess I need to compile
> the native method with __attribute__ ((regparm(3)))  ??

The regparm() stuff is only used for JCNI native dispatch, not
JNI dispatch. I.e., it's only used internally within JCHEVM itself.
So this should not affect handling of JNI native dispatch.

>> Not sure what you mean by name decoration and build options.
> The problem is aligning the java classes with the native methods they
> call.  The goal is definitely zero mods to native-src directory.  But
> I suspect this will depend on ABI issues for the different platforms. 
> In specific, netBSD vs. Linux vs. Windows vs. Cygwin vs. Xen...

I still don't understand... the consistency of Java native method name
and parameter declarations with the C code that implements them (which
is specified exactly in the JNI specification and is the same everywhere)
seems like a completely different issue from whether the JVM and native
methods were compiled using the same ABI.


Archie Cobbs      *        CTO, Awarix        *      http://www.awarix.com

Terms of use : http://incubator.apache.org/harmony/mailing.html
To unsubscribe, e-mail: harmony-dev-unsubscribe@incubator.apache.org
For additional commands, e-mail: harmony-dev-help@incubator.apache.org

View raw message