gcc version 4.0.0 20041113 (experimental) I produce a cross compiler as I normally do. Host is linux, target is i686-pc-mingw32, and create a simple test class and compile:
public class test { public static void main(String[] sa) { System.out.println("H. World"); } } i686-pc-mingw32-gcj --main=test test.java Copy the a.exe to a win machine, run it, and it has an application error. All .exe's that are created with gcj fail. If I create a "hello world" test.c and compile it with i686-pc-mingw32-gcc, and copy it to the win box it works fine. The i686-pc-mingw32-gcj I built a month ago works without problem: gcc version 4.0.0 20041014 (experimental) Here is what I see in gdb: (gdb) r Starting program: /cygdrive/e/dev/test/a.exe Program received signal SIGSEGV, Segmentation fault. 0x0043319d in _Jv_FindClass () at /datal/gcc/gcc/gcc/config/i386/cygwin.asm:67 67 /datal/gcc/gcc/gcc/config/i386/cygwin.asm: No such file or directory. in /datal/gcc/gcc/gcc/config/i386/cygwin.asm Current language: auto; currently asm (gdb) bt #0 0x0043319d in _Jv_FindClass () at /datal/gcc/gcc/gcc/config/i386/cygwin.asm:67 #1 0x00401b27 in _Jv_FindClassFromSignature () at /datal/gcc/gcc/gcc/config/i386/cygwin.asm:67 #2 0x004333cd in _Jv_PrepareCompiledClass () at /datal/gcc/gcc/gcc/config/i386/cygwin.asm:67 #3 0x004095ad in java::lang::Class::initializeClass () at /datal/gcc/gcc/gcc/config/i386/cygwin.asm:67 #4 0x004096ed in java::lang::Class::initializeClass () at /datal/gcc/gcc/gcc/config/i386/cygwin.asm:67 #5 0x004096ed in java::lang::Class::initializeClass () at /datal/gcc/gcc/gcc/config/i386/cygwin.asm:67 #6 0x0040217c in _Jv_AllocObjectNoFinalizer () at /datal/gcc/gcc/gcc/config/i386/cygwin.asm:67 #7 0x00470e32 in java::util::Hashtable::entrySet () at /datal/gcc/gcc/gcc/config/i386/cygwin.asm:67 #8 0x004711ef in java::util::Hashtable::putAllInternal () at /datal/gcc/gcc/gcc/config/i386/cygwin.asm:67 #9 0x00470aa4 in java::util::Hashtable::clone () at /datal/gcc/gcc/gcc/config/i386/cygwin.asm:67 #10 0x00403cd4 in java::lang::System::__U3c_clinit__U3e_ () at /datal/gcc/gcc/gcc/config/i386/cygwin.asm:67 #11 0x0040954f in java::lang::Class::initializeClass () at /datal/gcc/gcc/gcc/config/i386/cygwin.asm:67 #12 0x00403702 in java::lang::System::getSecurityManager () at /datal/gcc/gcc/gcc/config/i386/cygwin.asm:67 #13 0x0040bba9 in java::lang::ClassLoader::getSystemClassLoader () at /datal/gcc/gcc/gcc/config/i386/cygwin.asm:67 #14 0x00433159 in _Jv_FindClass () at /datal/gcc/gcc/gcc/config/i386/cygwin.asm:67 #15 0x00401b27 in _Jv_FindClassFromSignature () at /datal/gcc/gcc/gcc/config/i386/cygwin.asm:67 #16 0x004333cd in _Jv_PrepareCompiledClass () at /datal/gcc/gcc/gcc/config/i386/cygwin.asm:67 #17 0x004095ad in java::lang::Class::initializeClass () at /datal/gcc/gcc/gcc/config/i386/cygwin.asm:67 #18 0x0040217c in _Jv_AllocObjectNoFinalizer () at /datal/gcc/gcc/gcc/config/i386/cygwin.asm:67 #19 0x004021a7 in _Jv_AllocObject () at /datal/gcc/gcc/gcc/config/i386/cygwin.asm:67 #20 0x00432b63 in _Jv_NewClass () at /datal/gcc/gcc/gcc/config/i386/cygwin.asm:67 #21 0x004336d4 in _Jv_NewArrayClass () at /datal/gcc/gcc/gcc/config/i386/cygwin.asm:67 #22 0x00402432 in _Jv_NewObjectArray () at /datal/gcc/gcc/gcc/config/i386/cygwin.asm:67 #23 0x0046f8b2 in java::util::Hashtable::Hashtable () at /datal/gcc/gcc/gcc/config/i386/cygwin.asm:67 #24 0x0046fae2 in java::util::Hashtable::Hashtable () at /datal/gcc/gcc/gcc/config/i386/cygwin.asm:67 #25 0x004922dd in java::security::Permissions::finit$ () at /datal/gcc/gcc/gcc/config/i386/cygwin.asm:67 #26 0x0049230a in java::security::Permissions::Permissions () at /datal/gcc/gcc/gcc/config/i386/cygwin.asm:67 #27 0x0043d283 in java::lang::VMClassLoader::__U3c_clinit__U3e_ () at /datal/gcc/gcc/gcc/config/i386/cygwin.asm:67 #28 0x0040954f in java::lang::Class::initializeClass () at /datal/gcc/gcc/gcc/config/i386/cygwin.asm:67 #29 0x0043cef5 in java::lang::VMClassLoader::getSystemClassLoader () at /datal/gcc/gcc/gcc/config/i386/cygwin.asm:67 #30 0x0040c5d4 in java::lang::ClassLoader::__U3c_clinit__U3e_ () at /datal/gcc/gcc/gcc/config/i386/cygwin.asm:67 #31 0x0040954f in java::lang::Class::initializeClass () at /datal/gcc/gcc/gcc/config/i386/cygwin.asm:67 #32 0x00402ece in _Jv_CreateJavaVM () at /datal/gcc/gcc/gcc/config/i386/cygwin.asm:67 #33 0x004030c9 in _Jv_RunMain () at /datal/gcc/gcc/gcc/config/i386/cygwin.asm:67 #34 0x0040329b in JvRunMain () at /datal/gcc/gcc/gcc/config/i386/cygwin.asm:67 #35 0x004012ce in main (argc=1, argv=0x3d3e48) -- Summary: linux -> win cross compiler : gcj produces corrupt executables Product: gcc Version: 4.0.0 Status: UNCONFIRMED Severity: normal Priority: P2 Component: java AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: ovidr at users dot sourceforge dot net CC: gcc-bugs at gcc dot gnu dot org,java-prs at gcc dot gnu dot org http://gcc.gnu.org/bugzilla/show_bug.cgi?id=18459