|Subject:||Re: JNI intBitsToFloat return error|
|Date:||Mar 27, 2007 12:28:55 pm|
The linux distribution you are using may already come with a gdb installed.
Please look to see if one is available before you attempt a cross compile.
Alternatively, you can build CVM with USE_VERBOSE_MAKE=true (if you are using
the latest development tip) or CVM_TERSEOUTPUT=false (if you're using older
source). Look at the gcc invocation line for building Float.c. Change the -c
to -S and Float.o to Float.S, and recompile Float.c. This will give you the
assembly output for that file. Look in the generated assembly file for the code
generated for the return statement of Float_intBitsToFloat().
Regarding the calling convention mismatch, I meant that the gcc you are using
may be expecting to return the float result in a floating point register (a
simulated one since you don't have actual floating point hardware), but the VM
is expecting it in a general purpose register. There could be other things like
this that could have been mismatched as well. Basically, the VM is expecting
you to return the value using one convention, and gcc may be generating code
using a different convention. This is why I want to find out what asm code is
being generated for the return statement.
Also, when you do a CVM build, the build will output a lot of build information.
Please capture this output as the build log. At the top of the build log is a
list of the build options that you used. Please post that.
Mark [Message sent by forum member 'mlam' (mlam)]