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

Re: gcj cannot find ecj any more, on m68k



On 05/12/2012 04:59 PM, Thorsten Glaser wrote:
> Andrew Haley dixit:
> 
>> Oh, gosh.  As you say, it looks like strace isn't working.  I can't
> 
> I managed to get further by usine -o but *not* -f (or -ff), since
> using -o with -ff showed a child process’ log consisting exactly of:
> 
> --- SIGPWR (Power failure) @ 0 (0) ---
> --- SIGXCPU (CPU time limit exceeded) @ 0 (0) ---
> +++ killed by SIGINT +++
> 
> I believe it hung there.
> 
> Added to the logs were:
> 
> - stdout/stderr -
> 
> [Loaded (pre-compiled) java.util.PropertyResourceBundle from <no code source>]
> [Loaded (pre-compiled) gnu.gcj.convert.Input_8859_1 from <no code source>]
> [Loaded (BC-compiled) org.eclipse.jdt.internal.compiler.env.AccessRestriction from (file:/usr/share/java/eclipse-ecj-3.5.1.jar <no certificates>)]
> [Loaded (BC-compiled) org.eclipse.jdt.internal.compiler.batch.ClasspathSourceJar from (file:/usr/share/java/eclipse-ecj-3.5.1.jar <no certificates>)]
> [Loaded (BC-compiled) org.eclipse.jdt.internal.compiler.batch.ClasspathJar from (file:/usr/share/java/eclipse-ecj-3.5.1.jar <no certificates>)]
> [Loaded (BC-compiled) org.eclipse.jdt.internal.compiler.batch.ClasspathLocation from (file:/usr/share/java/eclipse-ecj-3.5.1.jar <no certificates>)]
> [Loaded (BC-compiled) org.eclipse.jdt.internal.compiler.batch.ClasspathDirectory from (file:/usr/share/java/eclipse-ecj-3.5.1.jar <no certificates>)]
> [Loaded (BC-compiled) org.eclipse.jdt.internal.compiler.env.NameEnvironmentAnswer from (file:/usr/share/java/eclipse-ecj-3.5.1.jar <no certificates>)]
> [Loaded (BC-compiled) org.eclipse.jdt.internal.compiler.batch.ClasspathDirectory$1 from (file:/usr/share/java/eclipse-ecj-3.5.1.jar <no certificates>)]
> [Loaded (BC-compiled) org.eclipse.jdt.internal.compiler.classfmt.ClassFileReader from (file:/usr/share/java/eclipse-ecj-3.5.1.jar <no certificates>)]
> [Loaded (BC-compiled) org.eclipse.jdt.internal.compiler.classfmt.ClassFileStruct from (file:/usr/share/java/eclipse-ecj-3.5.1.jar <no certificates>)]
> [Loaded (pre-compiled) org.eclipse.jdt.internal.compiler.env.IBinaryNestedType from (file:/usr/share/java/eclipse-ecj-3.5.1.jar <no certificates>)]
> [Loaded (pre-compiled) org.eclipse.jdt.internal.compiler.env.IBinaryField from (file:/usr/share/java/eclipse-ecj-3.5.1.jar <no certificates>)]
> [Loaded (pre-compiled) org.eclipse.jdt.internal.compiler.env.IGenericField from (file:/usr/share/java/eclipse-ecj-3.5.1.jar <no certificates>)]
> [Loaded (pre-compiled) org.eclipse.jdt.internal.compiler.env.IBinaryMethod from (file:/usr/share/java/eclipse-ecj-3.5.1.jar <no certificates>)]
> [Loaded (pre-compiled) org.eclipse.jdt.internal.compiler.env.IGenericMethod from (file:/usr/share/java/eclipse-ecj-3.5.1.jar <no certificates>)]
> [Loaded (BC-compiled) org.eclipse.jdt.internal.compiler.util.ManifestAnalyzer from (file:/usr/share/java/eclipse-ecj-3.5.1.jar <no certificates>)]
> [Loaded (BC-compiled) org.eclipse.jdt.internal.compiler.classfmt.ClassFormatException from (file:/usr/share/java/eclipse-ecj-3.5.1.jar <no certificates>)]
> [Loaded (pre-compiled) java.lang.ArrayIndexOutOfBoundsException from <no code source>]
> [Loaded (pre-compiled) java.lang.IndexOutOfBoundsException from <no code source>]
> [Loaded (pre-compiled) java.util.Hashtable$1 from <no code source>]
> [Loaded (pre-compiled) java.util.Hashtable$KeyIterator from <no code source>]
> [Loaded (pre-compiled) java.util.Collections$8 from <no code source>]
> Exception in thread "main" [Loaded (pre-compiled) gnu.gcj.runtime.NameFinder from <no code source>]
> [Loaded (pre-compiled) gnu.gcj.runtime.NameFinder$Addr2Line from <no code source>]
> [Loaded (pre-compiled) java.lang.PosixProcess from <no code source>]
> [Loaded (pre-compiled) java.lang.Process from <no code source>]
> [Loaded (pre-compiled) java.lang.PosixProcess$ProcessManager from <no code source>]
> [Loaded (pre-compiled) java.util.LinkedList from <no code source>]
> [Loaded (pre-compiled) java.util.AbstractSequentialList from <no code source>]
> [Loaded (pre-compiled) java.util.Deque from <no code source>]
> [Loaded (pre-compiled) java.util.Queue from <no code source>]
> [Loaded (pre-compiled) java.util.LinkedList$Entry from <no code source>]
> [Loaded (pre-compiled) java.util.LinkedList$LinkedListItr from <no code source>]
> [Loaded (pre-compiled) java.util.ListIterator from <no code source>]
> [Loaded (pre-compiled) java.io.BufferedWriter from <no code source>]
> [Loaded (pre-compiled) java.lang.Throwable$StaticData from <no code source>]
> 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)
> 
> - strace -
> 
> fstat64(3, {st_mode=S_IFREG|0644, st_size=1282644, ...}) = 0
> fstat64(3, {st_mode=S_IFREG|0644, st_size=1282644, ...}) = 0
> fstat64(3, {st_mode=S_IFREG|0644, st_size=1282644, ...}) = 0
> fstat64(3, {st_mode=S_IFREG|0644, st_size=1282644, ...}) = 0
> fstat64(3, {st_mode=S_IFREG|0644, st_size=1282644, ...}) = 0
> fstat64(3, {st_mode=S_IFREG|0644, st_size=1282644, ...}) = 0
> fstat64(3, {st_mode=S_IFREG|0644, st_size=1282644, ...}) = 0
> stat64(".", {st_mode=S_IFDIR|0755, st_size=20480, ...}) = 0
> access(".", F_OK)                       = 0
> fstat64(3, {st_mode=S_IFREG|0644, st_size=1282644, ...}) = 0
> fstat64(3, {st_mode=S_IFREG|0644, st_size=1282644, ...}) = 0
> fstat64(3, {st_mode=S_IFREG|0644, st_size=1282644, ...}) = 0
> fstat64(3, {st_mode=S_IFREG|0644, st_size=1282644, ...}) = 0
> fstat64(3, {st_mode=S_IFREG|0644, st_size=1282644, ...}) = 0
> fstat64(3, {st_mode=S_IFREG|0644, st_size=1282644, ...}) = 0
> fstat64(3, {st_mode=S_IFREG|0644, st_size=1282644, ...}) = 0
> fstat64(3, {st_mode=S_IFREG|0644, st_size=1282644, ...}) = 0
> lstat64("/root", {st_mode=S_IFDIR|0755, st_size=20480, ...}) = 0
> stat64("/usr/share/java/libgcj-4.6.jar", {st_mode=S_IFREG|0644, st_size=10171111, ...}) = 0
> fstat64(3, {st_mode=S_IFREG|0644, st_size=1282644, ...}) = 0
> fstat64(3, {st_mode=S_IFREG|0644, st_size=1282644, ...}) = 0
> open("/usr/share/java/libgcj-4.6.jar", O_RDONLY|O_LARGEFILE) = 6
> stat64("/usr/share/java/libgcj-4.6.jar", {st_mode=S_IFREG|0644, st_size=10171111, ...}) = 0
> lstat64("/root", {st_mode=S_IFDIR|0755, st_size=20480, ...}) = 0
> lstat64("/root/x.java", {st_mode=S_IFREG|0644, st_size=12, ...}) = 0
> lstat64("/usr", {st_mode=S_IFDIR|0755, st_size=4096, ...}) = 0
> lstat64("/usr/share", {st_mode=S_IFDIR|0755, st_size=4096, ...}) = 0
> lstat64("/usr/share/java", {st_mode=S_IFDIR|0755, st_size=4096, ...}) = 0
> lstat64("/usr/share/java/libgcj-4.6.jar", {st_mode=S_IFREG|0644, st_size=10171111, ...}) = 0
> fstat64(3, {st_mode=S_IFREG|0644, st_size=1282644, ...}) = 0
> access("/usr/lib/debug/usr/lib/gcj/eclipse-ecj.jar.so", R_OK) = -1 ENOENT (No such file or directory)
> access("/usr/lib/debug/usr/lib/gcj/eclipse-ecj.jar.so", R_OK) = -1 ENOENT (No such file or directory)
> access("/usr/lib/debug/usr/lib/gcj/eclipse-ecj.jar.so", R_OK) = -1 ENOENT (No such file or directory)
> access("/usr/lib/debug/usr/lib/gcj/eclipse-ecj.jar.so", R_OK) = -1 ENOENT (No such file or directory)
> 
> I don’t understand why it would want a debugging library here.

It's trying to print a stack trace.

> On the other hand, as good news, somehow the command works with
> gij-4.4 and its library… but calling it as 'gcj-4.4' directly
> still fails:
> 
> 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)
> 
> Yet…
> 
> root@aranym:~ # gij-4.4 -classpath /usr/share/java/eclipse-ecj.jar org.eclipse.jdt.internal.compiler.batch.GCCMain x.java -g1 -fbootclasspath=./:/usr/share/java/libgcj-4.4.jar -g1 -fsource=1.5 -ftarget=1.5
> root@aranym:~ # echo $?; ls -l x.class
> 0
> -rw-r--r-- 1 root root 176 May 12 15:54 x.class

Try this with -verbose:class.  We need as much info as we can get.

> So this is probably not a problem with ecj, and possibly not even
> with gcj, but with the precompiled classes?

I think so.  Another experiment worth doing is deleting
/usr/lib/gcj/eclipse-ecj.jar.so.

Andrew.


Reply to: