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]

JNI vs. #ifdef INTERPRETER



An observation:  _Jv_GetJNIEnvNewFrame and _Jv_LookupJNIMethod aren't defined
unless INTERPRETER is defined which means that it isn't possible to use 
JNI on platforms like Sparc Solaris that don't build with interpreter support.

Witness:

$ CLASSPATH=/net/maya/disk1/Scratch/mgd/build/swarm-jdk/java gcj --encoding=UTF-8 TestSwarm.java /net/maya/disk1/Scratch/mgd/build/swarm-jdk/java/swarm/swarm.so --main=TestSwarm
/net/maya/disk1/Scratch/mgd/build/swarm-jdk/java/swarm/swarm.so: undefined reference to `_Jv_GetJNIEnvNewFrame'
/net/maya/disk1/Scratch/mgd/build/swarm-jdk/java/swarm/swarm.so: undefined reference to `_Jv_LookupJNIMethod'
collect2: ld returned 1 exit status 
$

Here's what happens when building on Solaris with --enable-interpreter.
(Without --enable-interpreter, a bootstrap otherwise works fine.)

openwin/include -W -Wall -D_GNU_SOURCE -g -O2 -Wp,-MD,.deps/resolve.pp -c /disks
/disk1/Scratch/mgd/src/gcc/libjava/resolve.cc  -fPIC -DPIC -o .libs/resolve.o
/disks/disk1/Scratch/mgd/src/gcc/libjava/resolve.cc:1062: 'ffi_raw_closure' is
   used as a type, but is not defined as a type.
/disks/disk1/Scratch/mgd/src/gcc/libjava/resolve.cc: In member function `void*
   _Jv_InterpMethod::ncode()':
/disks/disk1/Scratch/mgd/src/gcc/libjava/resolve.cc:1109: `struct
   ncode_closure' has no member named `closure'
/disks/disk1/Scratch/mgd/src/gcc/libjava/resolve.cc:1112: `ffi_prep_java_raw_clo
sure' undeclared (first use this function)
/disks/disk1/Scratch/mgd/src/gcc/libjava/resolve.cc:1112: (Each undeclared
   identifier is reported only once for each function it appears in.)
/disks/disk1/Scratch/mgd/src/gcc/libjava/resolve.cc: In member function `void*
   _Jv_JNIMethod::ncode()':
/disks/disk1/Scratch/mgd/src/gcc/libjava/resolve.cc:1171: `struct
   ncode_closure' has no member named `closure'
make[3]: *** [resolve.lo] Error 1
$


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