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

Reply via email to