This is the mail archive of the java-discuss@sourceware.cygnus.com 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: Dynamic loading - solutions and more problems



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

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