gcc configured with:--prefix=/proj/install --enable-shared --enable-threads=posix --enable-clocale=gnu --with-gnu-as --with-gnu-ld --disable-nls --with-system-zlib Operating System: Fedora Core 3
This is *not* the gcj that is installed with FC3, I compiled it separately. The libgcj is *not* the one installed with FC3, its the one I compiled from GCC 4.0.0 Attempting to run JING (a Relax NG based XML validator) after compilation with GCJ yields a SIGSEGV in _Jv_Linker::prepare_constant_time_tables in file libjava/link.cc at line 519. The code in this method traverses a list. One of the pointers (klass0) in that list has value 1 which when de-referenced causes the SIGSEGV. To recreate: 1. wget http://www.thaiopensource.com/download/gcj/jing-20030619.tar.gz 2. tar zxf jing-20030619.tar.gz 3. configure 4. make (13 warnings about deprecated classes) 5. cd test 6. make JING is 330K of Java source so I didn't attach it. But, you can get it from the URL above. I don't really care if its against the "reporting rules" for GCC. This is a runtime error, not a compilation error (that I can tell). GDB produces this trace: #0 _Jv_Linker::prepare_constant_time_tables (klass=0x81415e0) at ../../../gcc/libjava/link.cc:519 #1 0xb771c20a in _Jv_Linker::wait_for_state (klass=0x81415e0, state=9) at ../../../gcc/libjava/link.cc:1712 #2 0xb774c816 in java::lang::VMClassLoader::resolveClass (klass=0x81415e0) at ../../../gcc/libjava/java/lang/natVMClassLoader.cc:44 #3 0xb77438be in java::lang::Class::initializeClass (this=0x81415e0) at ../../../gcc/libjava/java/lang/natClass.cc:728 #4 0xb770dca0 in _Jv_AllocObjectNoFinalizer (klass=0x81415e0) at Class.h:576 #5 0x0807fb67 in com.thaiopensource.validate.auto.AutoSchemaReceiver.installHandlers(org.xml.sax.XMLReader) (this=0x2, xr=0xe3de8) at AutoSchemaReceiver.java:92 #6 0x0807ee0e in com.thaiopensource.validate.auto.AutoSchemaReader.createSchema(org.xml.sax.InputSource, com.thaiopensource.util.PropertyMap) (this=0x4add8, in=0xa79d8, properties=0xa5ca0) at AutoSchemaReader.java:65 #7 0x0807a566 in com.thaiopensource.validate.ValidationDriver.loadSchema(org.xml.sax.InputSource) (this=0x4d758, in=0x1) at ValidationDriver.java:148 #8 0x0808da5e in com.thaiopensource.relaxng.util.TestDriver.loadSchema(java.io.File) (this=0x4f570, schema=0x2) at TestDriver.java:133 #9 0x0808dbea in com.thaiopensource.relaxng.util.TestDriver.runTestCase(java.io.File) (this=0x4f570, dir=0x4adb0) at TestDriver.java:92 #10 0x0808de65 in com.thaiopensource.relaxng.util.TestDriver.runTestSuite(java.io.File) (this=0x4f570, dir=0x4adb8) at TestDriver.java:81 #11 0x0808d8b3 in com.thaiopensource.relaxng.util.TestDriver.doMain(java.lang.String[]) (this=0x4f570, args=0x24d00) at TestDriver.java:60 #12 0x0808d5f8 in com.thaiopensource.relaxng.util.TestDriver.main(java.lang.String[]) (args=0x2) at TestDriver.java:21 #13 0xb773bdc3 in gnu::java::lang::MainThread::call_main (this=0x77f18) at ../../../gcc/libjava/gnu/java/lang/natMainThread.cc:47 #14 0xb77e10de in gnu.java.lang.MainThread.run() (this=0x77f18) The output on the stderr is this: Exception in thread "main" java.lang.LinkageError: unexpected exception during linking: com.thaiopensource.validate.auto.AutoSchemaReceiver$Handler at java.lang.VMClassLoader.transformException(java.lang.Class, java.lang.Throwable) (/proj/install/lib/libgcj.so.6.0.0) at java.lang.VMClassLoader.resolveClass(java.lang.Class) (/proj/install/lib/libgcj.so.6.0.0) at java.lang.Class.initializeClass() (/proj/install/lib/libgcj.so.6.0.0) at com.thaiopensource.validate.auto.AutoSchemaReceiver.installHandlers(org.xml.sax.XMLReader) (/proj/jing/jing-20030619/test/./src/com/thaiopensource/validate/auto/AutoSchemaReceiver.java:92) at com.thaiopensource.validate.auto.AutoSchemaReader.createSchema(org.xml.sax.InputSource, com.thaiopensource.util.PropertyMap) (/proj/jing/jing-20030619/test/./src/com/thaiopensource/validate/auto/AutoSchemaReader.java:65) at com.thaiopensource.validate.ValidationDriver.loadSchema(org.xml.sax.InputSource) (/proj/jing/jing-20030619/test/./src/com/thaiopensource/validate/ValidationDriver.java:148) at com.thaiopensource.relaxng.util.TestDriver.loadSchema(java.io.File) (/proj/jing/jing-20030619/test/./src/com/thaiopensource/relaxng/util/TestDriver.java:133) at com.thaiopensource.relaxng.util.TestDriver.runTestCase(java.io.File) (/proj/jing/jing-20030619/test/./src/com/thaiopensource/relaxng/util/TestDriver.java:92) at com.thaiopensource.relaxng.util.TestDriver.runTestSuite(java.io.File) (/proj/jing/jing-20030619/test/./src/com/thaiopensource/relaxng/util/TestDriver.java:82) at com.thaiopensource.relaxng.util.TestDriver.doMain(java.lang.String[]) (/proj/jing/jing-20030619/test/./src/com/thaiopensource/relaxng/util/TestDriver.java:61) at com.thaiopensource.relaxng.util.TestDriver.main(java.lang.String[]) (/proj/jing/jing-20030619/test/./src/com/thaiopensource/relaxng/util/TestDriver.java:21) at gnu.java.lang.MainThread.call_main() (/proj/install/lib/libgcj.so.6.0.0) at gnu.java.lang.MainThread.run() (/proj/install/lib/libgcj.so.6.0.0) Caused by: java.lang.NullPointerException at java.lang.VMClassLoader.resolveClass(java.lang.Class) (/proj/install/lib/libgcj.so.6.0.0) ...11 more -- Summary: _Jv_Linker Product: gcc Version: 4.0.0 Status: UNCONFIRMED Severity: normal Priority: P2 Component: libgcj AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: rspencer at x10sys dot com CC: gcc-bugs at gcc dot gnu dot org,java-prs at gcc dot gnu dot org GCC build triplet: i686-pc-linux-gnu GCC host triplet: i686-pc-linux-gnu GCC target triplet: i686-pc-linux-gnu http://gcc.gnu.org/bugzilla/show_bug.cgi?id=21326