Dynamic loading - solutions and more problems

Matt Welsh mdw@cs.berkeley.edu
Sun Apr 2 16:19:00 GMT 2000


Per Bothner <per@bothner.com> writes:
>> Have you tried compiling MainProgram.java with -fno-assume-compiled ?

This does allow 'MainProgram.so' to load, but it crashes in
"_Jv_PrepareConstantTimeTables". Here is the error:
mm33:~/src/ninja/test/mdw/autoload/load2% gcj -fno-assume-compiled -shared -o MainProgram.so MainProgram.java 
mm33:~/src/ninja/test/mdw/autoload/load2% gij MainProgram
MDW: Class.loadClass() trying to find: MainProgram
MDW: Class.loadClass() calling findSystemClass for: MainProgram
MDW: Runtime::loadLibraryInternal() loading MainProgram
MDW: Runtime::loadLibraryInternal() got handle 0x80912f8
MDW: Class.loadClass() trying to find: ToLoad
MDW: Class.loadClass() calling findSystemClass for: ToLoad
MDW: Runtime::loadLibraryInternal() loading ToLoad
MDW: Runtime::loadLibraryInternal() got handle 0x80913d0
java.lang.NullPointerException
 at 0x4009c1d9: _init (/home/cs/mdw/disks/mm33/egcs-jaguar/install/gcc-2.95.2-new-jaguar/lib/libgcj.so.1)
 at 0x40134664: _Jv_PrepareConstantTimeTables(java::lang::Class *) (/home/cs/mdw/disks/mm33/egcs-jaguar/install/gcc-2.95.2-new-jaguar/lib/libgcj.so.1)
 at 0x40133dfb: java::lang::Class::initializeClass(void) (/home/cs/mdw/disks/mm33/egcs-jaguar/install/gcc-2.95.2-new-jaguar/lib/libgcj.so.1)
 at 0x40136696: java::lang::FirstThread::run(void) (/home/cs/mdw/disks/mm33/egcs-jaguar/install/gcc-2.95.2-new-jaguar/lib/libgcj.so.1)
 at 0x400e4742: java::lang::Thread::run_(void) (/home/cs/mdw/disks/mm33/egcs-jaguar/install/gcc-2.95.2-new-jaguar/lib/libgcj.so.1)
 at 0x4013c1da: java::lang::Thread::run__(java::lang::Object *) (/home/cs/mdw/disks/mm33/egcs-jaguar/install/gcc-2.95.2-new-jaguar/lib/libgcj.so.1)
 at 0x4014cdc2: _Jv_ThreadSetPriority(_Jv_Thread_t *, int) (/home/cs/mdw/disks/mm33/egcs-jaguar/install/gcc-2.95.2-new-jaguar/lib/libgcj.so.1)
 at 0x401f3d16: GC_start_routine (/home/cs/mdw/disks/mm33/egcs-jaguar/install/gcc-2.95.2-new-jaguar/lib/libgcjgc.so.1)
 at 0x4020ace9: pthread_detach (/lib/libpthread.so.0)
 at 0x402ee45a: __clone (/lib/libc.so.6)
mm33:~/src/ninja/test/mdw/autoload/load2% addr2line: /proc/30502/exe: No such file or directory
> From the comments, I'm guessing the thing to do may be:
> -fno-assume-compiled=ToLoad

If I do this, I get:
gcj -fno-assume-compiled=ToLoad -shared -o MainProgram.so MainProgram.java 
gcj: Internal compiler error: program jc1 got fatal signal 11
This is with gcj-2.95.2 with Bryce's patches, and libgcj from just before
the "CNI catch change" went in.
So, still no luck...
Matt Welsh


More information about the Java mailing list

AltStyle によって変換されたページ (->オリジナル) /