GCCMain not found & test suite errors fatal?

Andrew Haley aph@redhat.com
Thu Dec 31 14:49:00 GMT 2009


On 12/31/2009 02:36 PM, John Poole wrote:
> I need help with two issues.
> 
> Background:
> I'm trying to install a Java development and runtime environment on the 
> Marvell SheevaPlug which runs off an ARMv5t processor.
> 
> I currently have Gentoo installed on my SheevaPlug.  Gentoo does not 
> support Java for the ARMv5t platform.  I do know that Java works on the 
> SheevaPlug as other people using an identical SheevaPlug have Ubuntu or 
> other flavors of Linux installed and they are able to install a Java 
> runtime and java based programs.  Moreover, Sun offers a run time 
> environment, but Sun charges for it.  I would like to be able to set up 
> a run time environment within Gentoo on the SheevaPlug without having to 
> pay for a license or buy a black box technology.
> 
> I therefore undertook to compile icedtea6-1.6 and ran into a circular 
> dependency of ANT.  ANT needs Java to install.  I logged Bug 387 with 
> Iced Tea and I was advised to "use gcj to build openjdk build 
> dependencies and bootstrap openjdk using gcj."  That endeavor brings me 
> to this list.
> 
> I was able to successfully make Revision: 155206 of 
> svn://gcc.gnu.org/svn/gcc/trunk.
> 
> I was unable to compile a test class, and logged Bug 42405; my problem 
> had been failing to specify a library path; the comment "Make sure your 
> install library path is in LD_LIBRARY_PATH." worked insofar as it got me 
> past the error message 
> "/usr/local/gcj/usr/local/bin/../libexec/gcc/armv5tel-unknown-linux-gnueabi/4.5.0/ecj1: 
> error while loading shared libraries: libgcj_bc.so.1: cannot open shared 
> object file: No such file or directory ."  By using these two commands, 
> I was able to move past the problem:
>     export LD_LIBRARY_PATH=/usr/local/gcj/usr/local/lib
>     ./gcj -v -I /usr/local/gcj/usr/local/share/java/libgcj-4.5.0.jar 
> /var/work/gcj/HelloWorld.java
> 
> 
> Issue #1:
> I then came across a new error, 
> "org.eclipse.jdt.internal.compiler.batch.GCCMain" class not found, and 
> opened Bug 42409 to track it.

I imagine you haven't installed ecj.jar:

---------------------------------------------------------------------------
The following options apply to building `libgcj'.

General Options

--with-ecj-jar=filename

This option can be used to specify the location of an external jar
file containing the Eclipse Java compiler. A specially modified
version of this compiler is used by gcj to parse .java source
files. If this option is given, the `libjava' build will create and
install an ecj1 executable which uses this jar file at runtime.

If this option is not given, but an ecj.jar file is found in the
topmost source tree at configure time, then the `libgcj' build will
create and install ecj1, and will also install the discovered ecj.jar
into a suitable place in the install tree.

If ecj1 is not installed, then the user will have to supply one on his
path in order for gcj to properly parse .java source files. A suitable
jar is available from ftp://sourceware.org/pub/java/.
---------------------------------------------------------------------------

I suggest you grab ecj.jar and put it in install/share/java.  That
should get you a fully working gcj.

> Issue #2:
> As an aside, I ran the test suite and had six errors.  Unfortunately, I 
> do not know if these errors are show-stoppers or not and would 
> appreciate anyone's opinion about whether they will block me from 
> running a gcj compiler.  They details of the test suite are set forth in 
> Bug 42409.
> 
> FAIL: calls execution - gij test
> FAIL: findclass2 run
> FAIL: Throw_2 execution - source compiled test
> FAIL: Throw_2 -findirect-dispatch execution - source compiled test
> FAIL: Throw_2 -O3 execution - source compiled test
> FAIL: Throw_2 -O3 -findirect-dispatch execution - source compiled test
>                  === libjava Summary ===

I don't know about calls and findclass2, but Throw_2 is known to fail
on ARM.  This is a bug in the ARM unwinder which is AFAIK impossible
to fix.

> Given then above test results coupled with the warning in the
> documentation that some errors would occur, I'm thinking I've been
> very successful.

I think so.  Bootstrapping the entire Java world from zero is a hard
problem.

Andrew.



More information about the Java mailing list