When trying to use gcj -C instead of a symlink to ecj as gcj's javac (with
options appropriately changed with a script), I ran across an interesting issue
building OpenJDK:
gcj -C -g     -d lib/hotspot-tools     -fsource=1.5    
-I'hotspot-tools:/home/andrew/projects/openjdk/icedtea/netx:/mnt/builder/icedtea/generated:openjdk/jdk/src/share/classes:openjdk/jdk/src/solaris/classes:openjdk/langtools/src/share/classes:openjdk/jaxp/src/share/classes:openjdk/corba/src/share/classes:openjdk/jaxws/src/share/classes'
    -bootclasspath \'\' -w @hotspot-tools-source-files.txt

(-w added so the errors aren't lost in 12k+ warnings)

hotspot-tools/com/sun/codemodel/internal/JClass.java:269: error: The
constructor JNarrowedClass(JClass, List<Object>) is \
undefined
        return new JNarrowedClass(this,Arrays.asList(clazz.clone()));
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
hotspot-tools/com/sun/tools/javac/code/Scope.java:138: error: The constructor
Scope(Scope, Symbol, Object) is undefined
        return new Scope(this, this.owner, this.table.clone());
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
hotspot-tools/com/sun/tools/javac/code/Scope.java:490: error: The constructor
Scope.ErrorScope(Scope.ErrorScope, Symbol, \
Object) is undefined
        return new ErrorScope(this, owner, table.clone());
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
hotspot-tools/com/sun/tools/javac/jvm/Code.java:1608: error: Type mismatch:
cannot convert from Object to Type[]
        state.stack = stack.clone();

There are 146 of these errors, all seem to be related to clone().  They don't
occur when using gij to run ecj, either the system copy or the one used by gcj
(from sourceware.org):

/home/andrew/build/gcj/bin/gij -cp
/home/andrew/projects/classpath/gcj/dependencies/ecj.jar
org.eclipse.jdt.internal.compiler.batch.Main  -g     -d lib/hotspot-tools    
-source 1.5     -sourcepath      
'hotspot-tools:/home/andrew/projects/openjdk/icedtea/netx:/mnt/builder/icedtea/generated:openjdk/jdk/src/share/classes:openjdk/jdk/src/solaris/classes:openjdk/langtools/src/share/classes:openjdk/jaxp/src/share/classes:openjdk/corba/src/share/classes:openjdk/jaxws/src/share/classes'
    -bootclasspath \'\' @hotspot-tools-source-files.txt
... some time later...
21808 problems (21808 warnings)

Am I translating some of the arguments correctly?  If I instead turn sourcepath
into -fsourcepath, it fails immediately as it is unable to locate
java.lang.Object.  The same occurs if -bootclasspath \'\' is removed.


-- 
           Summary: gcj -C has problems with clone()
           Product: gcc
           Version: 4.5.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: java
        AssignedTo: unassigned at gcc dot gnu dot org
        ReportedBy: gnu_andrew at member dot fsf dot org


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=40888

Reply via email to