gcj -s -O2 --main=HelloWorld HelloWorld.java World.class -o foobar.exe Works with gcj 4.2 but fails with gcj 4.3: C:\DOKUME~1\Marco\LOKALE~1\Temp/ccSkeaaa.o:ccoFcaaa.jar:(.text+0x66): undefined reference to `java::lang::String* World::getWorld()' collect2: ld returned 1 exit status
also: gcj -s -O2 --main=HelloWorld HelloWorld.java World.class -ofoobar.exe (No space between "-o" and "foobar.exe"). That works with gcj 4.2 and the no space thing with gcj 4.3 usually too. But in this case, when compilation would fail anyway, it gives an internal compiler error: C:\DOKUME~1\Marco\LOKALE~1\Temp/ccgrbaaa.jar:0: internal compiler error: in java_parse_file, at java/jcf-parse.c:1945 Please submit a full bug report, with preprocessed source if appropriate. See <URL:http://gcc.gnu.org/bugs.html> for instructions. It's not really clear if it is a regression or if it was just luck that it worked before. It is, however, very useful to be able to compile mixed source and I actually run into trouble a couple of times already because of this. So I'd go for "fixing" this :-) The see the discussion here: http://gcc.gnu.org/ml/java/2007-01/msg00101.html -- Summary: mixing source (.java) and bytecode (.class) no longer works with gcj 4.3 Product: gcc Version: 4.3.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: java AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: mtrudel at gmx dot ch GCC build triplet: all GCC host triplet: all GCC target triplet: all http://gcc.gnu.org/bugzilla/show_bug.cgi?id=30515