gij with gcc 2.95.2 (was: Re: internal error - SP mismatch)
James CE Johnson
jcej@tragus.org
Fri Mar 24 15:16:00 GMT 2000
Ok...
This works:
[jcej@node04 T3]$ rm -f *.so *.class
[jcej@node04 T3]$ gcj -C HelloWorld.java
[jcej@node04 T3]$ gij HelloWorld
Hello World
As does this:
[jcej@node04 T3]$ rm -f *.so *.class
[jcej@node04 T3]$ gcj -shared -o HelloWorld.so HelloWorld.java
[jcej@node04 T3]$ gij HelloWorld
Hello World
Both of those with this trivial HelloWorld.java:
public class HelloWorld
{
public static void main(String args[])
{
System.err.println("Hello World");
}
}
Now I want to simulate using an object in some random .class file. So I create:
class Foo
{
public int Bar()
{
System.err.println("Foo::Bar");
return 0;
}
}
And change main():
public class HelloWorld
{
public static void main(String args[])
{
System.err.println("Hello World");
Foo foo = new Foo();
foo.Bar();
}
}
Compile everything to .class and we have success:
[jcej@node04 T3]$ rm -f *.so *.class
[jcej@node04 T3]$ gcj -C HelloWorld.java
[jcej@node04 T3]$ gcj -C Foo.java
[jcej@node04 T3]$ gij HelloWorld
Hello World
Foo::Bar
Try mixing native binary & .class and we have failure:
[jcej@node04 T3]$ rm -f *.so *.class
[jcej@node04 T3]$ gcj -C Foo.java
[jcej@node04 T3]$ gcj -shared -o HelloWorld.so HelloWorld.java
[jcej@node04 T3]$ gij HelloWorld
java.lang.ClassNotFoundException: HelloWorld
at 0x400e4e4b: java::lang::Throwable::Throwable(java::lang::String *)
(/usr/local/lib/libgcj.so.1)
at 0x400d8984: java::lang::Exception::Exception(java::lang::String *)
(/usr/local/lib/libgcj.so.1)
at 0x400d7cf4:
java::lang::ClassNotFoundException::ClassNotFoundException(java::lang::String *)
(/usr/local/lib/libgcj.so.1)
at 0x400fcc44: java::net::URLClassLoader::findClass(java::lang::String *)
(/usr/local/lib/libgcj.so.1)
at 0x400d71d6: java::lang::ClassLoader::loadClass(java::lang::String *, bool)
(/usr/local/lib/libgcj.so.1)
at 0x401331a4: _Jv_FindClass(_Jv_Utf8Const *, java::lang::ClassLoader *)
(/usr/local/lib/libgcj.so.1)
at 0x40130382: java::lang::Class::forName(java::lang::String *)
(/usr/local/lib/libgcj.so.1)
at 0x40133f8a: java::lang::FirstThread::run(void) (/usr/local/lib/libgcj.so.1)
at 0x400e20c2: java::lang::Thread::run_(void) (/usr/local/lib/libgcj.so.1)
at 0x40139aca: java::lang::Thread::run__(java::lang::Object *)
(/usr/local/lib/libgcj.so.1)
at 0x4014a6c2: _Jv_ThreadSetPriority(_Jv_Thread_t *, int)
(/usr/local/lib/libgcj.so.1)
at 0x401eaf16: GC_start_routine (/usr/local/lib/libgcjgc.so.1)
at 0x40203ccf: pthread_detach (/lib/libpthread.so.0)
at 0x402d71ba: __clone (/lib/libc.so.6)
[jcej@node04 T3]$ pwd
/home2/jcej/projects/personal/gcj/T3
[jcej@node04 T3]$ echo $CLASSPATH
/home2/jcej/projects/personal/gcj/T3
[jcej@node04 T3]$ echo $LD_LIBRARY_PATH
/home2/jcej/projects/personal/gcj/T3:/usr/local/lib
So... What did I do wrong this time?
More information about the Java
mailing list