This is the mail archive of the java@gcc.gnu.org mailing list for the Java project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]

Re: libffi limitation causes bad behavior in JNI on Sparc


>>>>> "Marcus" == Marcus G Daniels <mgd@swarm.org> writes:

Hi Marcus.  Sorry this sat unanswered for so long.

Marcus> On Sparc, libffi doesn't handle integer return types of size 8 or 16.
Marcus> This causes problems for JNI calls like CallBooleanMethod because the
Marcus> return value is in the wrong bits of the returned integer. 

Marcus> For example, a hack that worked for me was to change ffi_call in
Marcus> libffi/src/sparc/ffi.c to check for FFI_TYPE_UINT8 and FFI_TYPE_SINT8
Marcus> and do a *(unsigned *)rvalue << = 24 in that case.  

I'm afraid I don't know enough about libffi or Sparc to comment on
this.  Can somebody who does step up here?  For instance, is this
suggested fix really a hack, or is it a reasonable approach to fixing
the bug?

Tom


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]