From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 3422 invoked by alias); 6 May 2005 14:29:41 -0000 Mailing-List: contact java-prs-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Subscribe: List-Archive: List-Post: List-Help: , Sender: java-prs-owner@gcc.gnu.org Received: (qmail 3385 invoked by uid 48); 6 May 2005 14:29:38 -0000 Date: Fri, 06 May 2005 14:29:00 -0000 From: "mark at gcc dot gnu dot org" To: java-prs@gcc.gnu.org Message-ID: <20050506142914.21418.mark@gcc.gnu.org> Reply-To: gcc-bugzilla@gcc.gnu.org Subject: [Bug java/21418] New: Order of source files matters when compiling X-Bugzilla-Reason: CC X-SW-Source: 2005-q2/txt/msg00372.txt.bz2 List-Id: We occasionally get bug reports against GNU Classpath about strange compilation errors. Kalle Olavi Niemitalo finally tracked it down. The order in which gcj -C is given source files to compile. The smallest example given was: gcj --bootclasspath '' --classpath .:vm/reference -C -d /tmp/obj java/io/ObjectInputStream.java gnu/java/io/ClassLoaderObjectInputStream.java gnu/java/rmi/server/RMIObjectInputStream.java gnu/java/rmi/RMIMarshalledObjectInputStream.java org/omg/CORBA/portable/InputStream.java Which gives lots of errors like: gnu/java/rmi/RMIMarshalledObjectInputStream.java:52: error: Class 'gnu.java.rmi.RMIMarshalledObjectInputStream' doesn't define the abstract method 'org.omg.CORBA.Object org.omg.CORBA.portable.InputStream.read_Object()' from class 'org.omg.CORBA.portable.InputStream'. This method must be defined or class 'gnu.java.rmi.RMIMarshalledObjectInputStream' must be declared abstract. public class RMIMarshalledObjectInputStream extends RMIObjectInputStream Obviously gcj somehow picked up the wrong InputStream class from the org.omg.CORBA.portable package instead of the java.io package. No compilation errors occur when changing the order of arguments to: gcj --bootclasspath '' --classpath .:vm/reference -C -d /tmp/obj org/omg/CORBA/portable/InputStream.java java/io/ObjectInputStream.java gnu/java/io/ClassLoaderObjectInputStream.java gnu/java/rmi/server/RMIObjectInputStream.java gnu/java/rmi/RMIMarshalledObjectInputStream.java This is with either a GNU Classpath 0.15 release or a CVS checkout done in the top level directory. Similar bahavior in 3.3, 3.4, 4.0 and 4.1 branches: gcj (GCC) 3.3.5 (Debian 1:3.3.5-12) gcj-3.4 (GCC) 3.4.4 20050314 (prerelease) (Debian 3.4.3-12) gcj (GCC) 4.0.1 20050505 (prerelease) gcj (GCC) 4.1.0 20050501 (experimental) For GNU Classpath CVS I will "workaround" this issue by sorting the classes file list. That way at least we will get uniform bug reports not depending on the order in which find returns the source files. -- Summary: Order of source files matters when compiling Product: gcc Version: 4.1.0 Status: UNCONFIRMED Severity: normal Priority: P2 Component: java AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: mark at gcc dot gnu dot org CC: gcc-bugs at gcc dot gnu dot org,java-prs at gcc dot gnu dot org,kon at iki dot fi http://gcc.gnu.org/bugzilla/show_bug.cgi?id=21418