Testing gcj/libgcj with mauve

Michael Young mikado_282@hotmail.com
Tue Feb 19 18:53:00 GMT 2013

I'm trying to build and test the gcc Java compiler and library on a typical PC running Linux (target is "i686-pc-linux-gnu"; I'm actually running Ubuntu 12.04).  So I read the following at "http://gcc.gnu.org/install/test.html":

The Java runtime tests can be executed via `make check' in the target/libjava/testsuite directory in the build tree.

The Mauve Project provides a suite of tests for the Java Class Libraries. This suite can be run as part of libgcj testing by placing the Mauve tree within the libjava testsuite at libjava/testsuite/libjava.mauve/mauve, or by specifying the location of that tree when invoking `make', as in `make MAUVEDIR=~mauve check'.

OK - sounds simple enough.  But I go to get mauve, and it *appears* to be an abandoned project at "http://www.sourceware.org/mauve/".  Snapshots are not available as advertised, no recent activity on the mailing lists, source available via CVS (not svn or git), etc.
Attempting to anonymously login to the CVS repository per the instructions on the mauve website gets me nowhere:

$ cvs -d :pserver:anoncvs@sourceware.org:/cvs/mauve login
Logging in to :pserver:anoncvs@sourceware.org:2401/cvs/mauve
CVS password:                                                        <- I enter "anoncvs" here
cvs [login aborted]: unrecognized auth response from sourceware.org: Service temporarily unavailable, please try again later

So I went to the Ubuntu Software Center and downloaded the mauve package, which puts a tarball in /usr/src and docs in /usr/share/doc/mauve.
It appears that someone (Canonical?) made this package on 2012-01-03 (according to the detail notes I see in the Software Center for the package).

I moved/unpacked the tarball, set a symlink from the parent of my gcc source directory to the "mauve" directory, and then ran make as directed (specifically, the command looks like the following in my case: "make MAUVEDIR=/home/youngmj/DevTools/Gnu_Compiler_Collection-gcc/Version_4.7.2/source/../mauve check > ~/libjava_test_log__20130219_1318.txt 2>&1")

But then I look in the captured output file and see the following:

Native configuration is i686-pc-linux-gnu

        === libjava tests ===

Schedule of variations:

Running target unix
Using /usr/share/dejagnu/baseboards/unix.exp as board description file for target.
Using /usr/share/dejagnu/config/unix.exp as generic interface file for target.
Using /home/youngmj/DevTools/Gnu_Compiler_Collection-gcc/Version_4.7.2/source/gcc-4.7.2/libjava/testsuite/config/default.exp as tool-and-target-specific interface file.
Running /home/youngmj/DevTools/Gnu_Compiler_Collection-gcc/Version_4.7.2/source/gcc-4.7.2/libjava/testsuite/libjava.cni/cni.exp ...
Running /home/youngmj/DevTools/Gnu_Compiler_Collection-gcc/Version_4.7.2/source/gcc-4.7.2/libjava/testsuite/libjava.jar/jar.exp ...
Running /home/youngmj/DevTools/Gnu_Compiler_Collection-gcc/Version_4.7.2/source/gcc-4.7.2/libjava/testsuite/libjava.jni/jni.exp ...
Running /home/youngmj/DevTools/Gnu_Compiler_Collection-gcc/Version_4.7.2/source/gcc-4.7.2/libjava/testsuite/libjava.jvmti/jvmti-interp.exp ...
LD_LIBRARY_PATH=. /home/youngmj/DevTools/Gnu_Compiler_Collection-gcc/Version_4.7.2/build/i686-pc-linux-gnu/./libjava/gij -cp /home/youngmj/DevTools/Gnu_Compiler_Collection-gcc/Version_4.7.2/source/gcc-4.7.2/libjava/testsuite/libjava.jvmti/interp/getargssize.jar -agentlib:dummyagent getargssize
LD_LIBRARY_PATH=. /home/youngmj/DevTools/Gnu_Compiler_Collection-gcc/Version_4.7.2/build/i686-pc-linux-gnu/./libjava/gij -cp /home/youngmj/DevTools/Gnu_Compiler_Collection-gcc/Version_4.7.2/source/gcc-4.7.2/libjava/testsuite/libjava.jvmti/interp/getlocalvartable.jar -agentlib:dummyagent getlocalvartable
LD_LIBRARY_PATH=. /home/youngmj/DevTools/Gnu_Compiler_Collection-gcc/Version_4.7.2/build/i686-pc-linux-gnu/./libjava/gij -cp /home/youngmj/DevTools/Gnu_Compiler_Collection-gcc/Version_4.7.2/source/gcc-4.7.2/libjava/testsuite/libjava.jvmti/interp/getstacktrace.jar -agentlib:dummyagent getstacktrace
Running /home/youngmj/DevTools/Gnu_Compiler_Collection-gcc/Version_4.7.2/source/gcc-4.7.2/libjava/testsuite/libjava.jvmti/jvmti.exp ...
Running /home/youngmj/DevTools/Gnu_Compiler_Collection-gcc/Version_4.7.2/source/gcc-4.7.2/libjava/testsuite/libjava.lang/lang.exp ...
Running /home/youngmj/DevTools/Gnu_Compiler_Collection-gcc/Version_4.7.2/source/gcc-4.7.2/libjava/testsuite/libjava.loader/loader.exp ...
Running /home/youngmj/DevTools/Gnu_Compiler_Collection-gcc/Version_4.7.2/source/gcc-4.7.2/libjava/testsuite/libjava.mauve/mauve.exp ...
configure: WARNING: unrecognized options: --with-gcj
checking for a BSD-compatible install... /usr/bin/install -c
checking whether build environment is sane... yes
checking for a thread-safe mkdir -p... /bin/mkdir -p
checking for gawk... gawk
checking whether make sets $(MAKE)... yes
checking how to create a pax tar archive... gnutar
checking build system type... i686-pc-linux-gnu
checking host system type... i686-pc-linux-gnu
checking for Windows and DOS and OS/2 style pathnames... no
checking for gcc... gcc
checking whether the C compiler works... yes
checking for C compiler default output file name... a.out
checking for suffix of executables...
checking whether we are cross compiling... no
checking for suffix of object files... o
checking whether we are using the GNU C compiler... yes
checking whether gcc accepts -g... yes
checking for gcc option to accept ISO C89... none needed
checking for style of include used by make... GNU
checking dependency style of gcc... none
configure: creating ./config.status
config.status: creating Makefile
config.status: creating gnu/testlet/config.java
config.status: executing depfiles commands
configure: WARNING: unrecognized options: --with-gcj
make[2]: Entering directory `/home/youngmj/DevTools/Gnu_Compiler_Collection-gcc/Version_4.7.2/build/i686-pc-linux-gnu/libjava/testsuite/mauve-build'
make[2]: *** No rule to make target `classes.stamp'.  Stop.
make[2]: Leaving directory `/home/youngmj/DevTools/Gnu_Compiler_Collection-gcc/Version_4.7.2/build/i686-pc-linux-gnu/libjava/testsuite/mauve-build'
FAIL: Mauve build
Running /home/youngmj/DevTools/Gnu_Compiler_Collection-gcc/Version_4.7.2/source/gcc-4.7.2/libjava/testsuite/libjava.special/special.exp ...
Running /home/youngmj/DevTools/Gnu_Compiler_Collection-gcc/Version_4.7.2/source/gcc-4.7.2/libjava/testsuite/libjava.verify/verify.exp ...

        === libjava Summary ===

# of expected passes        2575
# of unexpected failures    1
make[1]: *** [check-DEJAGNU] Error 1
make[1]: Leaving directory `/home/youngmj/DevTools/Gnu_Compiler_Collection-gcc/Version_4.7.2/build/i686-pc-linux-gnu/libjava/testsuite'
make: *** [check-am] Error 2

The "--with-gcj" configure option *should* be valid, according to mauve's README file.  The README.Debian file suggests that using mauve with srcdir != objdir (as I believe the gcc make does) does not seem to work well, but that's probably a red herring.  In any case, the makefile is complaining about an invalid target "classes.stamp".
As seen in the captured output, the other (non-mauve) DejaGnu/expect scripts seem to be running without problems - and I do get a summary and log file in the testsuite directory, as expected.

The following are pertinent lines from the log and summary files (libjava.log and libjava.sum):

**** FROM libjava.log
Running /home/youngmj/DevTools/Gnu_Compiler_Collection-gcc/Version_4.7.2/source/gcc-4.7.2/libjava/testsuite/libjava.mauve/mauve.exp ...
PASS: Mauve configure
FAIL: Mauve build
testcase /home/youngmj/DevTools/Gnu_Compiler_Collection-gcc/Version_4.7.2/source/gcc-4.7.2/libjava/testsuite/libjava.mauve/mauve.exp completed in 2 seconds
**** FROM libjava.sum
Running /home/youngmj/DevTools/Gnu_Compiler_Collection-gcc/Version_4.7.2/source/gcc-4.7.2/libjava/testsuite/libjava.mauve/mauve.exp ...
PASS: Mauve configure
FAIL: Mauve build

Is testing using mauve still supported / valid?  If so, what am I doing wrong?

More information about the Gcc-help mailing list