This is the mail archive of the
java@gcc.gnu.org
mailing list for the Java project.
Re: libjava status on Tru64 UNIX V5.1
- From: Rainer Orth <ro at TechFak dot Uni-Bielefeld dot DE>
- To: Rainer Orth <ro at TechFak dot Uni-Bielefeld dot DE>
- Cc: java at gcc dot gnu dot org
- Date: Thu, 21 Mar 2002 04:46:12 +0100 (MET)
- Subject: Re: libjava status on Tru64 UNIX V5.1
- References: <15512.61612.378681.513303@xayide.TechFak.Uni-Bielefeld.DE>
Rainer Orth writes:
> I'm just running a new bootstrap on alpha-dec-osf4.0f where those EH
> handling failures don't happen and libjava testsuite results should be as
> good as in 3.0.5.
make check just finished and looks reasonably well:
=== libjava tests ===
Running target unix
FAIL: PR5902 compilation from bytecode
FAIL: PR5902 -O compilation from bytecode
FAIL: cxxtest.c compilation
FAIL: Invoke_1 execution from source compiled test
FAIL: Invoke_1 execution from bytecode->native test
FAIL: Invoke_1 -O execution from source compiled test
FAIL: Invoke_1 -O execution from bytecode->native test
FAIL: PR218 execution from source compiled test
FAIL: PR218 execution from bytecode->native test
FAIL: PR218 -O execution from source compiled test
FAIL: PR218 -O execution from bytecode->native test
FAIL: invokethrow execution from source compiled test
FAIL: invokethrow execution from bytecode->native test
FAIL: invokethrow -O execution from source compiled test
FAIL: invokethrow -O execution from bytecode->native test
FAIL: TLtest compilation from bytecode
FAIL: TLtest -O compilation from bytecode
FAIL: Array_3 execution from source compiled test
FAIL: Array_3 execution from bytecode->native test
FAIL: Array_3 -O execution from source compiled test
FAIL: Array_3 -O execution from bytecode->native test
=== libjava Summary ===
# of expected passes 1922
# of unexpected failures 21
# of expected failures 18
# of untested testcases 110
So this platform seems to need -fcheck-references as well. Unfortunately
my proposed patch (included below for reference) to enable this on
platforms that need it revealed a problem:
* bootstrap on sparc-sun-solaris2.8 failed compiling
/vol/gnu/src/gcc/gcc-3.1-branch-dist/libjava/java/lang/Boolean.java: In class `java.lang.Boolean':
/vol/gnu/src/gcc/gcc-3.1-branch-dist/libjava/java/lang/Boolean.java: In constructor `(boolean)':
/vol/gnu/src/gcc/gcc-3.1-branch-dist/libjava/java/lang/Boolean.java:90: can't reassign a value to the final variable 'value'.
this.value = value;
^
/vol/gnu/src/gcc/gcc-3.1-branch-dist/libjava/java/lang/Boolean.java:79: final field 'value' may not have been initialized
1 error
This error vanishes if compiling with -fno-check-references.
* bootstrap on i686-pc-solaris2.8 succeeded, but apart from fixing some
testsuite failures as expected, it introduced a couple of new ones:
+FAIL: final_initialization_in_ctor compilation from source
+FAIL: final_initialization_in_ctor -O compilation from source
+FAIL: final_static_and_friend compilation from source
+FAIL: final_static_and_friend -O compilation from source
+FAIL: final_int compilation from source
+FAIL: final_int -O compilation from source
/vol/gnu/src/gcc/gcc-3.1-branch-dist/libjava/testsuite/libjava.compile/final_initialization_in_ctor.java: In class `final_initialization_in_ctor':
/vol/gnu/src/gcc/gcc-3.1-branch-dist/libjava/testsuite/libjava.compile/final_initialization_in_ctor.java: In constructor `(int,float)':
/vol/gnu/src/gcc/gcc-3.1-branch-dist/libjava/testsuite/libjava.compile/final_initialization_in_ctor.java:19: can't reassign a value to the final variable 'loadFactor'.
this.loadFactor = loadFactor;
^
/vol/gnu/src/gcc/gcc-3.1-branch-dist/libjava/testsuite/libjava.compile/final_initialization_in_ctor.java:10: final field 'loadFactor' may not have been initialized
1 error
Any suggestions what to do about this?
Rainer
-----------------------------------------------------------------------------
Rainer Orth, Faculty of Technology, Bielefeld University
Mon Mar 18 19:18:14 2002 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
* configure.host: Introduce host_cpu and host_os switches, moving
cpu- or os-only sections here.
Sort host switch.
* configure.host (REFERENCESPEC): New.
* libgcj.spec.in (jc1): Use it.
* configure.in (REFERENCESPEC): Substitute it.
* configure.host (solaris2*, mips-sgi-irix6*): Use
-fcheck-references for REFERENCESPEC.
* configure.host (i?86-*-solaris2*): Keep default DIVIDESPEC.
Index: configure.host
===================================================================
RCS file: /cvs/gcc/gcc/libjava/configure.host,v
retrieving revision 1.23.2.3
diff -u -p -r1.23.2.3 configure.host
--- configure.host 2002/03/16 00:35:42 1.23.2.3
+++ configure.host 2002/03/21 03:40:28
@@ -1,7 +1,7 @@
# configure.host
# This shell script handles all host based configuration for libgcj.
-# It sets various shell variables based on the the host and the
+# It sets various shell variables based on the host and the
# configuration options. You can modify this shell script without
# needing to rerun autoconf.
@@ -12,6 +12,7 @@
# It uses the following shell variables:
# host The configuration host
# host_cpu The configuration host CPU
+# host_os The configuration host OS
# target_optspace --enable-target-optspace ("yes", "no", "")
# It sets the following shell variables:
@@ -51,26 +52,21 @@ esac
AM_RUNTESTFLAGS=
-# Set any host dependent compiler flags.
-# THIS TABLE IS SORTED. KEEP IT THAT WAY.
-
echo "$target"
DIVIDESPEC=-fuse-divide-subroutine
EXCEPTIONSPEC=-fnon-call-exceptions
+REFERENCESPEC=
-case "${host}" in
- mips-tx39-*|mipstx39-unknown-*)
- libgcj_flags="${libgcj_flags} -G 0"
- LDFLAGS="$LDFLAGS -Tjmr3904dram.ld"
- AM_RUNTESTFLAGS="--target_board=jmr3904-sim"
- # Use "Ecos" processes since they are a no-op.
- PROCESS=Ecos
- FILE=Posix
- enable_java_net_default=no
- enable_getenv_properties_default=no
+# Set any CPU dependent comphost# THIS TABLE IS SORTED. KEEP IT THAT WAY.
+case "${host_cpu}" in
+ alpha*)
+ sysdeps_dir=alpha
+ libgcj_flags="${libgcj_flags} -mieee"
+ libgcj_interpreter=yes
+ enable_hash_synchronization_default=yes
;;
- i686-*|i586-*|i486-*|i386-*)
+ i[3456]6)
sysdeps_dir=i386
libgcj_flags="${libgcj_flags} -ffloat-store"
libgcj_interpreter=yes
@@ -80,29 +76,51 @@ case "${host}" in
enable_hash_synchronization_default=yes
slow_pthread_self=yes
;;
- alpha*-*)
- sysdeps_dir=alpha
- libgcj_flags="${libgcj_flags} -mieee"
+ ia64)
+ sysdeps_dir=ia64
+ libgcj_flags="${libgcj_flags} -funwind-tables"
libgcj_interpreter=yes
enable_hash_synchronization_default=yes
;;
- powerpc*-linux*)
- sysdeps_dir=powerpc
- libgcj_interpreter=yes
- enable_hash_synchronization_default=yes
- slow_pthread_self=yes
+esac
+
+# Set any OS dependent compiler flags.
+# THIS TABLE IS SORTED. KEEP IT THAT WAY.
+case "${host_os}" in
+ solaris2*)
+ REFERENCESPEC=-fcheck-references
+ ;;
+esac
+
+# Set any flags dependent on the full host triplet.
+# THIS TABLE IS SORTED. KEEP IT THAT WAY.
+case "${host}" in
+ i?86-*-solaris2*)
+ # override i?86 default
+ DIVIDESPEC=-fuse-divide-subroutine
+ ;;
+ mips-sgi-irix6*)
+ REFERENCESPEC=-fcheck-references
+ ;;
+ mips-tx39-*|mipstx39-unknown-*)
+ libgcj_flags="${libgcj_flags} -G 0"
+ LDFLAGS="$LDFLAGS -Tjmr3904dram.ld"
+ AM_RUNTESTFLAGS="--target_board=jmr3904-sim"
+ # Use "Ecos" processes since they are a no-op.
+ PROCESS=Ecos
+ FILE=Posix
+ enable_java_net_default=no
+ enable_getenv_properties_default=no
;;
powerpc*-darwin*)
sysdeps_dir=powerpc
libgcj_interpreter=yes
;;
- sparc-*)
- ;;
- ia64-*)
- sysdeps_dir=ia64
- libgcj_flags="${libgcj_flags} -funwind-tables"
+ powerpc*-linux*)
+ sysdeps_dir=powerpc
libgcj_interpreter=yes
enable_hash_synchronization_default=yes
+ slow_pthread_self=yes
;;
xscale*-elf)
with_libffi_default=no
Index: configure.in
===================================================================
RCS file: /cvs/gcc/gcc/libjava/configure.in,v
retrieving revision 1.114.2.3
diff -u -p -r1.114.2.3 configure.in
--- configure.in 2002/03/10 03:30:48 1.114.2.3
+++ configure.in 2002/03/21 03:40:28
@@ -736,6 +736,7 @@ AC_SUBST(ZDEPS)
AC_SUBST(ZINCS)
AC_SUBST(DIVIDESPEC)
AC_SUBST(EXCEPTIONSPEC)
+AC_SUBST(REFERENCESPEC)
AM_CONDITIONAL(CANADIAN, test "$CANADIAN" = yes)
AM_CONDITIONAL(NULL_TARGET, test "$NULL_TARGET" = yes)
Index: libgcj.spec.in
===================================================================
RCS file: /cvs/gcc/gcc/libjava/libgcj.spec.in,v
retrieving revision 1.20
diff -u -p -r1.20 libgcj.spec.in
--- libgcj.spec.in 2001/08/01 12:33:38 1.20
+++ libgcj.spec.in 2002/03/21 03:40:28
@@ -6,4 +6,4 @@
%rename lib liborig
*lib: -lgcj -lm @LIBICONV@ @GCSPEC@ @THREADSPEC@ @ZLIBSPEC@ @SYSTEMSPEC@ %(libgcc) %(liborig)
-*jc1: @HASH_SYNC_SPEC@ @DIVIDESPEC@ @JC1GCSPEC@ @EXCEPTIONSPEC@ -fkeep-inline-functions
+*jc1: @HASH_SYNC_SPEC@ @DIVIDESPEC@ @JC1GCSPEC@ @EXCEPTIONSPEC@ @REFERENCESPEC@ -fkeep-inline-functions