[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

gcj cannot find ecj any more, on m68k



Hi,

I’m having troubles with gcj for a while now, and can’t find it.
It’s not http://gcc.gnu.org/bugzilla/show_bug.cgi?id=42409 :
-rw-r--r-- 1 root root 10171111 Apr  4 07:37 /usr/share/java/libgcj-4.6.jar
Nor is it http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45773
as the code from comment #16 (when compiled to .class on
another system) works as it should.

How to reproduce? Boot up Debian/m68k, e.g. in a VM:
https://wiki.debian.org/Aranym/Quick

Run apt-get update if needed, then apt-get install gcj-4.{4,6}-jdk

root@aranym:~ # cat >x.java
class x {
}
root@aranym:~ # gcj-4.6 -c x.java -v -save-temps
Using built-in specs.
Reading specs from /usr/lib/gcc/m68k-linux-gnu/4.6/libgcj.spec
rename spec startfile to startfileorig
rename spec lib to liborig
COLLECT_GCC=gcj-4.6
COLLECT_LTO_WRAPPER=/usr/lib/gcc/m68k-linux-gnu/4.6/lto-wrapper
Target: m68k-linux-gnu
Configured with: ../src/configure -v --with-pkgversion='Debian 4.6.3-1' --with-bugurl=file:///usr/share/doc/gcj-4.6/README.Bugs --enable-languages=c,c++,java --prefix=/usr --program-suffix=-4.6 --enable-shared --enable-linker-build-id --with-system-zlib --libexecdir=/usr/lib --without-included-gettext --enable-threads=posix --with-gxx-include-dir=/usr/include/c++/4.6 --libdir=/usr/lib --enable-nls --with-sysroot=/ --enable-clocale=gnu --enable-libstdcxx-time=yes --disable-libssp --disable-libmudflap --enable-plugin --disable-browser-plugin --enable-java-awt=gtk --enable-gtk-cairo --with-java-home=/usr/lib/jvm/java-1.5.0-gcj-4.6/jre --enable-java-home --with-jvm-root-dir=/usr/lib/jvm/java-1.5.0-gcj-4.6 --with-jvm-jar-dir=/usr/lib/jvm-exports/java-1.5.0-gcj-4.6 --with-arch-directory=m68k --with-ecj-jar=/usr/share/java/eclipse-ecj.jar --disable-werror --disable-multilib --enable-checking=release --build=m68k-linux-gnu --host=m68k-linux-gnu --target=m68k-linux-gnu
Thread model: posix
gcc version 4.6.3 (Debian 4.6.3-1)
COLLECT_GCC_OPTIONS='-fsaw-java-file' '-c' '-v' '-save-temps' '-fbootclasspath=./:/usr/share/java/libgcj-4.6.jar' '-g1' '-shared-libgcc' '-m68020'
 /usr/lib/gcc/m68k-linux-gnu/4.6/ecj1 x.java -g1 -fbootclasspath=./:/usr/share/java/libgcj-4.6.jar -g1 -fsource=1.5 -ftarget=1.5 -fzip-dependency x.zip -fzip-target x.jar
Exception in thread "main" java.lang.NoClassDefFoundError: org.eclipse.jdt.internal.compiler.Compiler
   at org.eclipse.jdt.internal.compiler.batch.Main.performCompilation(eclipse-ecj.jar.so)
   at org.eclipse.jdt.internal.compiler.batch.Main.compile(eclipse-ecj.jar.so)
   at org.eclipse.jdt.internal.compiler.batch.GCCMain.compile(eclipse-ecj.jar.so)
   at org.eclipse.jdt.internal.compiler.batch.GCCMain.main(eclipse-ecj.jar.so)


The really bad thing is, this used to work with gcj-4.4, which until
some point was our standard gcj as per src:gcc-defaults, although,
for some time before and after the switch to gcj-4.6 no package using
Java was compiled, so the error was never detected.

root@aranym:~ # gcj-4.4 -c x.java -v -save-temps
Using built-in specs.
Reading specs from /usr/lib/gcc/m68k-linux-gnu/4.4.7/libgcj.spec
rename spec startfile to startfileorig
rename spec lib to liborig
Target: m68k-linux-gnu
Configured with: ../src/configure -v --with-pkgversion='Debian 4.4.7-1' --with-bugurl=file:///usr/share/doc/gcj-4.4/README.Bugs --enable-languages=c,c++,java --prefix=/usr --program-suffix=-4.4 --enable-shared --enable-linker-build-id --with-system-zlib --libexecdir=/usr/lib --without-included-gettext --enable-threads=posix --with-gxx-include-dir=/usr/include/c++/4.4 --libdir=/usr/lib --enable-nls --enable-clocale=gnu --disable-libssp --disable-libmudflap --disable-browser-plugin --enable-java-awt=gtk --enable-gtk-cairo --with-java-home=//usr/lib/jvm/java-1.5.0-gcj-4.4/jre --enable-java-home --with-jvm-root-dir=//usr/lib/jvm/java-1.5.0-gcj-4.4 --with-jvm-jar-dir=/usr/lib/jvm-exports/java-1.5.0-gcj-4.4 --with-arch-directory=m68k --with-ecj-jar=/usr/share/java/eclipse-ecj.jar --disable-werror --disable-multilib --enable-checking=release --build=m68k-linux-gnu --host=m68k-linux-gnu --target=m68k-linux-gnu
Thread model: posix
gcc version 4.4.7 (Debian 4.4.7-1)
COLLECT_GCC_OPTIONS='-fsaw-java-file' '-c' '-v' '-save-temps' '-fbootclasspath=./:/usr/share/java/libgcj-4.4.jar' '-g1' '-shared-libgcc' '-m68020'
 /usr/lib/gcc/m68k-linux-gnu/4.4.7/ecj1 x.java -g1 -fbootclasspath=./:/usr/share/java/libgcj-4.4.jar -g1 -fsource=1.5 -ftarget=1.5 -fzip-dependency x.zip -fzip-target x.jar
Exception in thread "main" java.lang.NoClassDefFoundError: org.eclipse.jdt.internal.compiler.Compiler
   at org.eclipse.jdt.internal.compiler.batch.Main.performCompilation(eclipse-ecj.jar.so)
   at org.eclipse.jdt.internal.compiler.batch.Main.compile(eclipse-ecj.jar.so)
   at org.eclipse.jdt.internal.compiler.batch.GCCMain.compile(eclipse-ecj.jar.so)
   at org.eclipse.jdt.internal.compiler.batch.GCCMain.main(eclipse-ecj.jar.so)
1|root@aranym:~ # ls -l /usr/share/java/libgcj-4.4.jar
-rw-r--r-- 1 root root 10165790 Mar 13 19:45 /usr/share/java/libgcj-4.4.jar


So, something is wrong with ecj, but that *also* was not recompiled.
I’ve tried running it with strace (which in itself is a PITA on m68k
as it’s slow as hell due to the TLS emulation used) but was unable
to spot anything pointing to it looking in wrong places.

If someone has an idea how to debug this, you’re welcome.

gcj-4.7 FTBFS’d the last time I tried to build it, but as of writing
this I’ve started to try to compile its latest version, since there
have been uploads in the meantime, maybe it got fixed… but maybe it
would have the same problem… anyway, the compile’s going to take 3
(yes, three) days, so, in the meantime, please look at this.

Thanks,
//mirabilos
-- 
Solange man keine schmutzigen Tricks macht, und ich meine *wirklich*
schmutzige Tricks, wie bei einer doppelt verketteten Liste beide
Pointer XORen und in nur einem Word speichern, funktioniert Boehm ganz
hervorragend.		-- Andreas Bogk über boehm-gc in d.a.s.r


Reply to: