This is the mail archive of the java@gcc.gnu.org mailing list for the Java project.
Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
---|---|---|
Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |
Other format: | [Raw text] |
Hi all, The good news: I got Eclipse 2.1 and Eclipse 3.0 (M4, beta) working with gij again. And it does run very nicely and fast, even though it is completely interpreted. It can spawn sub-work-benches to test newly developed plugins with. And I was even able to mix and match gcj and kaffe as alternative JREs. Which means that you can run eclipse with either as standard JRE, but then use the other for running java applications developed inside the Eclipse JDT. See the screenshot: http://www.klomp.org/mark/classpath/eclipse-gcj-kaffe.png The bad new: It took some fighting to get it to work. - The easy part is to define the following two properties for making it at least startup and detect gcj as standard JRE (for JDT work): java.vm.version=1.3 org.eclipse.core.runtime.ignoreLockFile=true I have the attached script as 'java' in my gcc34/bin install location. That makes it possible to run eclipse as downloaded from the eclipse.org site out of the box with just ./eclipse (when /usr/local/gcc34/bin is in your path). - The hard part was figuring out why it doesn't work with a default libgcj compile. I don't have a reduced test case yet but it seems that when libgcj is compiled with -O2 (which is standard) all kind of things get miscompiled. When trying to figure out when this broke for the first time I found the introduction of unit-at-a-time as default with -O2 to make the problems much worse, but even with this disabled eclipse wouldn't run. With unit-at-a-time Method.invoke() seems to just break (suddenly the wrong classloader is found/used), and even without unit-at-a-time it seems that class initializers are not always run correctly (suddenly some ClassLoaders have a null loadedClasses field). So I just tried to compile everything with only -O. But with CVS head this fails for the following files: Arc2D.java, Font.java, TextField.java, ZipInputStream.java, Boolean.java, JarFile.java, TreePath.java, natClass.cc. (Full error log attached.) When you compile the above 8 files by hand with -O2 you can get a libgcj that will be usable with gij to run eclipse (through the attached 'java' script). Download either eclipse-SDK-2.1.1-linux-gtk.zip or eclipse-SDK-3.0M4-linux-gtk.zip I did disable the verifier in verify.cc. I don't know if that is actually still necessary. Tom, is there a bug report for the issue you had last time with Eclipse? If that cannot be easily fixed maybe we should introduce a gij switch for disabling the verifier. Jeff said that there were already bug reports for inlining issues and maybe those are similar to what I see. I will try to come up with a smaller example later this week. Hopefully we can get these things fixed for 3.4 because having Eclipse work out of the box would be very, very nice (even if it was just interpreted for now). Cheers, Mark
#!/bin/sh LD_LIBRARY_PATH=/usr/local/gcc34/lib gij -Djava.vm.version=1.3 -Dgnu.gcj.runtime.NameFinder.remove_unknown=true -Dsun.boot.class.path=/usr/local/gcc34/share/java/libgcj-3.4.jar -Dorg.eclipse.core.runtime.ignoreLockFile=true $*
/bin/sh ./libtool --tag=GCJ --mode=compile /home/mark/src/gcc-obj/gcc/gcj -B/home/mark/src/gcc-obj/i686-pc-linux-gnu/libjava/ -B/home/mark/src/gcc-obj/gcc/ --encoding=UTF-8 -Wno-deprecated -fclasspath= -fbootclasspath=/home/mark/src/gcc-obj/i686-pc-linux-gnu/libjava -ffloat-store -g -O -MD -MT javax/swing/tree/TreePath.lo -MF javax/swing/tree/TreePath.d -c -o javax/swing/tree/TreePath.lo ../../../gcc/libjava/javax/swing/tree/TreePath.java /home/mark/src/gcc-obj/gcc/gcj -B/home/mark/src/gcc-obj/i686-pc-linux-gnu/libjava/ -B/home/mark/src/gcc-obj/gcc/ --encoding=UTF-8 -Wno-deprecated -fclasspath= -fbootclasspath=/home/mark/src/gcc-obj/i686-pc-linux-gnu/libjava -ffloat-store -g -O -MD -MT javax/swing/tree/TreePath.lo -MF javax/swing/tree/TreePath.d -c ../../../gcc/libjava/javax/swing/tree/TreePath.java -fPIC -o javax/swing/tree/.libs/TreePath.o ../../../gcc/libjava/javax/swing/tree/TreePath.java: In class `javax.swing.tree.TreePath': ../../../gcc/libjava/javax/swing/tree/TreePath.java: In method `javax.swing.tree.TreePath.isDescendant(javax.swing.tree.TreePath)': ../../../gcc/libjava/javax/swing/tree/TreePath.java:280: error: unrecognizable insn: (insn 161 105 162 14 ../../../gcc/libjava/javax/swing/tree/TreePath.java:274 (set (reg:CCZ %eflags) (compare:CCZ (mem/s/j:SI (plus:SI (mem/s/j:SI (plus:SI (reg/v/f:SI 59 [ this ]) (const_int 4 [0x4])) [0 <variable>.path+0 S4 A32]) (const_int 4 [0x4])) [0 <variable>.length+0 S4 A32]) (reg/v:SI 61 [ index2 ]))) -1 (nil) (expr_list:REG_DEAD (reg/f:SI 82 [ <variable>.path ]) (expr_list:REG_DEAD (reg/v:SI 61 [ index2 ]) (nil)))) ../../../gcc/libjava/javax/swing/tree/TreePath.java:280: internal compiler error: in extract_insn, at recog.c:2061
/bin/sh ./libtool --tag=GCJ --mode=compile /home/mark/src/gcc-obj/gcc/gcj -B/home/mark/src/gcc-obj/i686-pc-linux-gnu/libjava/ -B/home/mark/src/gcc-obj/gcc/ --encoding=UTF-8 -Wno-deprecated -fclasspath= -fbootclasspath=/home/mark/src/gcc-obj/i686-pc-linux-gnu/libjava -ffloat-store -g -O -MD -MT java/awt/geom/Arc2D.lo -MF java/awt/geom/Arc2D.d -c -o java/awt/geom/Arc2D.lo ../../../gcc/libjava/java/awt/geom/Arc2D.java /home/mark/src/gcc-obj/gcc/gcj -B/home/mark/src/gcc-obj/i686-pc-linux-gnu/libjava/ -B/home/mark/src/gcc-obj/gcc/ --encoding=UTF-8 -Wno-deprecated -fclasspath= -fbootclasspath=/home/mark/src/gcc-obj/i686-pc-linux-gnu/libjava -ffloat-store -g -O -MD -MT java/awt/geom/Arc2D.lo -MF java/awt/geom/Arc2D.d -c ../../../gcc/libjava/java/awt/geom/Arc2D.java -fPIC -o java/awt/geom/.libs/Arc2D.o ../../../gcc/libjava/java/awt/geom/Arc2D.java: In class `java.awt.geom.Arc2D$ArcIterator': ../../../gcc/libjava/java/awt/geom/Arc2D.java: In method `java.awt.geom.Arc2D$ArcIterator.currentSegment(double[])': ../../../gcc/libjava/java/awt/geom/Arc2D.java:711: internal compiler error: tree check: expected class 'e', have 'c' (real_cst) in java_complete_lhs, at java/parse.y:12054
/bin/sh ./libtool --tag=GCJ --mode=compile /home/mark/src/gcc-obj/gcc/gcj -B/home/mark/src/gcc-obj/i686-pc-linux-gnu/libjava/ -B/home/mark/src/gcc-obj/gcc/ --encoding=UTF-8 -Wno-deprecated -fclasspath= -fbootclasspath=/home/mark/src/gcc-obj/i686-pc-linux-gnu/libjava -ffloat-store -g -O -MD -MT java/awt/TextField.lo -MF java/awt/TextField.d -c -o java/awt/TextField.lo ../../../gcc/libjava/java/awt/TextField.java /home/mark/src/gcc-obj/gcc/gcj -B/home/mark/src/gcc-obj/i686-pc-linux-gnu/libjava/ -B/home/mark/src/gcc-obj/gcc/ --encoding=UTF-8 -Wno-deprecated -fclasspath= -fbootclasspath=/home/mark/src/gcc-obj/i686-pc-linux-gnu/libjava -ffloat-store -g -O -MD -MT java/awt/TextField.lo -MF java/awt/TextField.d -c ../../../gcc/libjava/java/awt/TextField.java -fPIC -o java/awt/.libs/TextField.o ../../../gcc/libjava/java/awt/TextField.java: In class `java.awt.TextField': ../../../gcc/libjava/java/awt/TextField.java: In method `java.awt.TextField.echoCharIsSet()': ../../../gcc/libjava/java/awt/TextField.java:255: error: unrecognizable insn: (insn 37 9 38 0 ../../../gcc/libjava/java/awt/TextField.java:252 (set (reg:CCZ %eflags) (compare:CCZ (mem/s/j:HI (plus:SI (mem/f:SI (reg/f:SI %eargp) [0 this+0 S4 A32]) (const_int 192 [0xc0])) [0 <variable>.echoChar+0 S2 A32]) (const_int 0 [0x0]))) -1 (nil) (expr_list:REG_DEAD (reg/v/f:SI 59 [ this ]) (nil))) ../../../gcc/libjava/java/awt/TextField.java:255: internal compiler error: in extract_insn, at recog.c:2061
/bin/sh ./libtool --tag=GCJ --mode=compile /home/mark/src/gcc-obj/gcc/gcj -B/home/mark/src/gcc-obj/i686-pc-linux-gnu/libjava/ -B/home/mark/src/gcc-obj/gcc/ --encoding=UTF-8 -Wno-deprecated -fclasspath= -fbootclasspath=/home/mark/src/gcc-obj/i686-pc-linux-gnu/libjava -ffloat-store -g -O -MD -MT java/awt/Font.lo -MF java/awt/Font.d -c -o java/awt/Font.lo ../../../gcc/libjava/java/awt/Font.java /home/mark/src/gcc-obj/gcc/gcj -B/home/mark/src/gcc-obj/i686-pc-linux-gnu/libjava/ -B/home/mark/src/gcc-obj/gcc/ --encoding=UTF-8 -Wno-deprecated -fclasspath= -fbootclasspath=/home/mark/src/gcc-obj/i686-pc-linux-gnu/libjava -ffloat-store -g -O -MD -MT java/awt/Font.lo -MF java/awt/Font.d -c ../../../gcc/libjava/java/awt/Font.java -fPIC -o java/awt/.libs/Font.o ../../../gcc/libjava/java/awt/Font.java: In class `java.awt.Font': ../../../gcc/libjava/java/awt/Font.java: In method `java.awt.Font.isPlain()': ../../../gcc/libjava/java/awt/Font.java:382: error: unrecognizable insn: (insn 37 9 38 0 ../../../gcc/libjava/java/awt/Font.java:379 (set (reg:CCZ %eflags) (compare:CCZ (mem/s/j:SI (plus:SI (mem/f:SI (reg/f:SI %eargp) [0 this+0 S4 A32]) (const_int 8 [0x8])) [0 <variable>.style+0 S4 A32]) (const_int 0 [0x0]))) -1 (nil) (expr_list:REG_DEAD (reg/v/f:SI 59 [ this ]) (nil))) ../../../gcc/libjava/java/awt/Font.java:382: internal compiler error: in extract_insn, at recog.c:2061
/bin/sh ./libtool --tag=GCJ --mode=compile /home/mark/src/gcc-obj/gcc/gcj -B/home/mark/src/gcc-obj/i686-pc-linux-gnu/libjava/ -B/home/mark/src/gcc-obj/gcc/ --encoding=UTF-8 -Wno-deprecated -fclasspath= -fbootclasspath=/home/mark/src/gcc-obj/i686-pc-linux-gnu/libjava -ffloat-store -g -O -MD -MT java/util/zip/ZipInputStream.lo -MF java/util/zip/ZipInputStream.d -c -o java/util/zip/ZipInputStream.lo ../../../gcc/libjava/java/util/zip/ZipInputStream.java /home/mark/src/gcc-obj/gcc/gcj -B/home/mark/src/gcc-obj/i686-pc-linux-gnu/libjava/ -B/home/mark/src/gcc-obj/gcc/ --encoding=UTF-8 -Wno-deprecated -fclasspath= -fbootclasspath=/home/mark/src/gcc-obj/i686-pc-linux-gnu/libjava -ffloat-store -g -O -MD -MT java/util/zip/ZipInputStream.lo -MF java/util/zip/ZipInputStream.d -c ../../../gcc/libjava/java/util/zip/ZipInputStream.java -fPIC -o java/util/zip/.libs/ZipInputStream.o ../../../gcc/libjava/java/util/zip/ZipInputStream.java: In class `java.util.zip.ZipInputStream': ../../../gcc/libjava/java/util/zip/ZipInputStream.java: In method `java.util.zip.ZipInputStream.available()': ../../../gcc/libjava/java/util/zip/ZipInputStream.java:265: error: unrecognizable insn: (insn 34 9 35 0 ../../../gcc/libjava/java/util/zip/ZipInputStream.java:264 (set (reg:CCZ %eflags) (compare:CCZ (mem/s/j:QI (plus:SI (mem/f:SI (reg/f:SI %eargp) [0 this+0 S4 A32]) (const_int 48 [0x30])) [0 <variable>.entryAtEOF+0 S1 A32]) (const_int 0 [0x0]))) -1 (nil) (expr_list:REG_DEAD (reg/v/f:SI 59 [ this ]) (nil))) ../../../gcc/libjava/java/util/zip/ZipInputStream.java:265: internal compiler error: in extract_insn, at recog.c:2061
/bin/sh ./libtool --tag=GCJ --mode=compile /home/mark/src/gcc-obj/gcc/gcj -B/home/mark/src/gcc-obj/i686-pc-linux-gnu/libjava/ -B/home/mark/src/gcc-obj/gcc/ --encoding=UTF-8 -Wno-deprecated -fclasspath= -fbootclasspath=/home/mark/src/gcc-obj/i686-pc-linux-gnu/libjava -ffloat-store -g -O -MD -MT java/util/jar/JarFile.lo -MF java/util/jar/JarFile.d -c -o java/util/jar/JarFile.lo ../../../gcc/libjava/java/util/jar/JarFile.java /home/mark/src/gcc-obj/gcc/gcj -B/home/mark/src/gcc-obj/i686-pc-linux-gnu/libjava/ -B/home/mark/src/gcc-obj/gcc/ --encoding=UTF-8 -Wno-deprecated -fclasspath= -fbootclasspath=/home/mark/src/gcc-obj/i686-pc-linux-gnu/libjava -ffloat-store -g -O -MD -MT java/util/jar/JarFile.lo -MF java/util/jar/JarFile.d -c ../../../gcc/libjava/java/util/jar/JarFile.java -fPIC -o java/util/jar/.libs/JarFile.o ../../../gcc/libjava/java/util/jar/JarFile.java: In class `java.util.jar.JarFile': ../../../gcc/libjava/java/util/jar/JarFile.java: In method `java.util.jar.JarFile.verify()': ../../../gcc/libjava/java/util/jar/JarFile.java:201: error: unrecognizable insn:(insn 35 9 36 0 ../../../gcc/libjava/java/util/jar/JarFile.java:195 (set (reg:CCZ %eflags) (compare:CCZ (mem/s/j:SI (plus:SI (mem/f:SI (reg/f:SI %eargp) [0 this+0 S4 A32]) (const_int 24 [0x18])) [0 <variable>.manifest+0 S4 A32]) (const_int 0 [0x0]))) -1 (nil) (nil)) ../../../gcc/libjava/java/util/jar/JarFile.java:201: internal compiler error: in extract_insn, at recog.c:2061
/bin/sh ./libtool --tag=GCJ --mode=compile /home/mark/src/gcc-obj/gcc/gcj -B/home/mark/src/gcc-obj/i686-pc-linux-gnu/libjava/ -B/home/mark/src/gcc-obj/gcc/ --encoding=UTF-8 -Wno-deprecated -fclasspath= -fbootclasspath=/home/mark/src/gcc-obj/i686-pc-linux-gnu/libjava -ffloat-store -g -O -MD -MT java/lang/Boolean.lo -MF java/lang/Boolean.d -c -o java/lang/Boolean.lo ../../../gcc/libjava/java/lang/Boolean.java /home/mark/src/gcc-obj/gcc/gcj -B/home/mark/src/gcc-obj/i686-pc-linux-gnu/libjava/ -B/home/mark/src/gcc-obj/gcc/ --encoding=UTF-8 -Wno-deprecated -fclasspath= -fbootclasspath=/home/mark/src/gcc-obj/i686-pc-linux-gnu/libjava -ffloat-store -g -O -MD -MT java/lang/Boolean.lo -MF java/lang/Boolean.d -c ../../../gcc/libjava/java/lang/Boolean.java -fPIC -o java/lang/.libs/Boolean.o ../../../gcc/libjava/java/lang/Boolean.java: In class `java.lang.Boolean': ../../../gcc/libjava/java/lang/Boolean.java: In method `java.lang.Boolean.hashCode()': ../../../gcc/libjava/java/lang/Boolean.java:193: error: unrecognizable insn: (insn 35 9 36 0 ../../../gcc/libjava/java/lang/Boolean.java:192 (set (reg:CC %eflags) (compare:CC (mem/s/j:QI (plus:SI (mem/f:SI (reg/f:SI %eargp) [0 this+0 S4 A32]) (const_int 4 [0x4])) [0 <variable>.value+0 S1 A32]) (const_int 1 [0x1]))) -1 (nil) (expr_list:REG_DEAD (reg/v/f:SI 59 [ this ]) (nil))) ../../../gcc/libjava/java/lang/Boolean.java:193: internal compiler error: in extract_insn, at recog.c:2061
/bin/sh ./libtool --tag=CXX --mode=compile /home/mark/src/gcc-obj/gcc/xgcc -shared-libgcc -B/home/mark/src/gcc-obj/gcc/ -nostdinc++ -L/home/mark/src/gcc-obj/i686-pc-linux-gnu/libstdc++-v3/src -L/home/mark/src/gcc-obj/i686-pc-linux-gnu/libstdc++-v3/src/.libs -B/usr/local/gcc34/i686-pc-linux-gnu/bin/ -B/usr/local/gcc34/i686-pc-linux-gnu/lib/ -isystem /usr/local/gcc34/i686-pc-linux-gnu/include -isystem /usr/local/gcc34/i686-pc-linux-gnu/sys-include -DHAVE_CONFIG_H -I. -I../../../gcc/libjava -I./include -I./gcj -I../../../gcc/libjava -Iinclude -I../../../gcc/libjava/include -I/home/mark/src/gcc/boehm-gc/include -DGC_LINUX_THREADS=1 -D_REENTRANT=1 -DTHREAD_LOCAL_ALLOC=1 -DSILENT=1 -DNO_SIGNALS=1 -DNO_EXECUTE_PERMISSION=1 -DALL_INTERIOR_POINTERS=1 -DJAVA_FINALIZATION=1 -DGC_GCJ_SUPPORT=1 -DATOMIC_UNCOLLECTABLE=1 -I../../../gcc/libjava/libltdl -I../../../gcc/libjava/libltdl -I../libstdc++-v3/include -I../libstdc++-v3/include/i686-pc-linux-gnu -I../../../gcc/libjava/../libstdc++-v3/libsupc++ -I../../../gcc/libjava/.././libjava/../gcc -I../../../gcc/libjava/../zlib -I../../../gcc/libjava/../libffi/include -I../libffi/include -O -g -fno-rtti -fnon-call-exceptions -fdollars-in-identifiers -Wswitch-enum -ffloat-store -I/usr/X11R6/include -W -Wall -D_GNU_SOURCE -DPREFIX="\"/usr/local/gcc34\"" -DLIBDIR="\"/usr/local/gcc34/lib\"" -DBOOT_CLASS_PATH="\"/usr/local/gcc34/share/java/libgcj-3.4.jar\"" -g -O -D_GNU_SOURCE -MD -MT java/lang/natClass.lo -MF java/lang/natClass.pp -c -o java/lang/natClass.lo ../../../gcc/libjava/java/lang/natClass.cc /home/mark/src/gcc-obj/gcc/xgcc -shared-libgcc -B/home/mark/src/gcc-obj/gcc/ -nostdinc++ -L/home/mark/src/gcc-obj/i686-pc-linux-gnu/libstdc++-v3/src -L/home/mark/src/gcc-obj/i686-pc-linux-gnu/libstdc++-v3/src/.libs -B/usr/local/gcc34/i686-pc-linux-gnu/bin/ -B/usr/local/gcc34/i686-pc-linux-gnu/lib/ -isystem /usr/local/gcc34/i686-pc-linux-gnu/include -isystem /usr/local/gcc34/i686-pc-linux-gnu/sys-include -DHAVE_CONFIG_H -I. -I../../../gcc/libjava -I./include -I./gcj -I../../../gcc/libjava -Iinclude -I../../../gcc/libjava/include -I/home/mark/src/gcc/boehm-gc/include -DGC_LINUX_THREADS=1 -D_REENTRANT=1 -DTHREAD_LOCAL_ALLOC=1 -DSILENT=1 -DNO_SIGNALS=1 -DNO_EXECUTE_PERMISSION=1 -DALL_INTERIOR_POINTERS=1 -DJAVA_FINALIZATION=1 -DGC_GCJ_SUPPORT=1 -DATOMIC_UNCOLLECTABLE=1 -I../../../gcc/libjava/libltdl -I../../../gcc/libjava/libltdl -I../libstdc++-v3/include -I../libstdc++-v3/include/i686-pc-linux-gnu -I../../../gcc/libjava/../libstdc++-v3/libsupc++ -I../../../gcc/libjava/.././libjava/../gcc -I../../../gcc/libjava/../zlib -I../../../gcc/libjava/../libffi/include -I../libffi/include -O -g -fno-rtti -fnon-call-exceptions -fdollars-in-identifiers -Wswitch-enum -ffloat-store -I/usr/X11R6/include -W -Wall -D_GNU_SOURCE -DPREFIX=\"/usr/local/gcc34\" -DLIBDIR=\"/usr/local/gcc34/lib\" -DBOOT_CLASS_PATH=\"/usr/local/gcc34/share/java/libgcj-3.4.jar\" -g -O -D_GNU_SOURCE -MD -MT java/lang/natClass.lo -MF java/lang/natClass.pp -c ../../../gcc/libjava/java/lang/natClass.cc -fPIC -DPIC -o java/lang/.libs/natClass.o ../../../gcc/libjava/java/lang/natClass.cc: In function `void _Jv_InitClass(java::lang::Class*)': ../../../gcc/libjava/java/lang/natClass.cc:92: internal compiler error: in gen_subprogram_die, at dwarf2out.c:10607
Index: verify.cc =================================================================== RCS file: /cvs/gcc/gcc/libjava/verify.cc,v retrieving revision 1.56 diff -u -r1.56 verify.cc --- verify.cc 24 Jul 2003 17:18:00 -0000 1.56 +++ verify.cc 3 Nov 2003 21:46:54 -0000 @@ -3304,7 +3304,9 @@ void _Jv_VerifyMethod (_Jv_InterpMethod *meth) { +#if 0 _Jv_BytecodeVerifier v (meth); v.verify_instructions (); +#endif } #endif /* INTERPRETER */
Attachment:
signature.asc
Description: This is a digitally signed message part
Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
---|---|---|
Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |