Class C is abstract and implements interface I. Class Bugtest has main() and imports C. All are in a different package hierarchy levels (see code).
crashing: gcj -o bugtest --main=BugTest *.class */*.class working: gcj -o bugtest --main=BugTest *.class gcj -o bugtest --main=BugTest *.class */*.class */*/*.class gcj --main=BugTest *.class gcj --main=BugTest *.class */*.class */*/*.class correctly complaining: gcj --main=BugTest *.class */*.class /usr/bin/ld: Undefined symbols: foo::deepfoo::I::class$ collect2: ld returned 1 exit status source codes: 1. I.java: package foo.deepfoo; public interface I { } 2. C.java: package foo; import foo.deepfoo.I; public abstract class C implements I { } 3. import foo.C; public class BugTest { public static void main (String args[]) { } } -- Summary: ICE: bus error if missed interface used in abstract class and output file specified Product: gcc Version: 3.4.3 Status: UNCONFIRMED Severity: normal Priority: P2 Component: java AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: bojan at antonovic dot com 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=20362