libjava status on Solaris 8/Intel and IRIX 6.5
Rainer Orth
ro@TechFak.Uni-Bielefeld.DE
Mon Mar 18 12:50:00 GMT 2002
Andrew Haley writes:
> > I assume you're going to check in your Solaris DIVIDESPEC change?
>> I don't have a machine to test on.
I can, once there's agreement on the complete configure.host vs. .target
and libgcj.spec changes. My current proposed patch is included below; I'll
test it later this week.
Rainer
Mon Mar 18 19:18:14 2002 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
* configure.target: Renamed from configure.host.
Changed host to target references.
Introduce target_cpu and target_os switches, moving cpu- or
os-only sections here.
* Makefile.am (CONFIG_STATUS_DEPENDENCIES): Reflect this.
* acinclude.m4: Likewise.
* Makefile.in: Rebuilt.
* aclocal.m4: Likewise.
* configure.target (REFERENCESPEC): New.
* libgcj.spec.in (jc1): Use it.
* configure.in (REFERENCESPEC): Substitute it.
* configure.target (i?86-*-solaris2*): Keep default DIVIDESPEC.
* configure.target (solaris2*, mips-sgi-irix6*): Use
-fcheck-references for REFERENCESPEC.
Index: Makefile.am
===================================================================
RCS file: /cvs/gcc/gcc/libjava/Makefile.am,v
retrieving revision 1.202.2.3
diff -u -p -r1.202.2.3 Makefile.am
--- Makefile.am 2002年03月06日 19:12:42 1.202.2.3
+++ Makefile.am 2002年03月18日 20:47:19
@@ -1960,7 +1960,7 @@ AM_MAKEFLAGS = \
"RANLIB=$(RANLIB)" \
"DESTDIR=$(DESTDIR)"
-CONFIG_STATUS_DEPENDENCIES = $(srcdir)/configure.host
+CONFIG_STATUS_DEPENDENCIES = $(srcdir)/configure.target
MAKEOVERRIDES=
Index: acinclude.m4
===================================================================
RCS file: /cvs/gcc/gcc/libjava/acinclude.m4,v
retrieving revision 1.18.2.1
diff -u -p -r1.18.2.1 acinclude.m4
--- acinclude.m4 2002年02月27日 02:22:33 1.18.2.1
+++ acinclude.m4 2002年03月18日 20:47:19
@@ -159,7 +159,7 @@ if false; then
AC_EXEEXT
fi
-# configure.host sets the following important variables
+# configure.target sets the following important variables
# libgcj_cflags - host specific C compiler flags
# libgcj_cxxflags - host specific C++ compiler flags
# libgcj_javaflags - host specific Java compiler flags
@@ -168,7 +168,7 @@ libgcj_cflags=
libgcj_cxxflags=
libgcj_javaflags=
-. [$]{srcdir}/configure.host
+. [$]{srcdir}/configure.target
LIBGCJ_CFLAGS="[$]{libgcj_cflags}"
LIBGCJ_CXXFLAGS="[$]{libgcj_cxxflags}"
Index: configure.target
===================================================================
RCS file: configure.target
diff -N configure.target
--- /dev/null Tue May 5 13:32:27 1998
+++ configure.target Mon Mar 18 12:47:19 2002
@@ -0,0 +1,136 @@
+# configure.target
+
+# This shell script handles all target based configuration for libgcj.
+# It sets various shell variables based on the target and the
+# configuration options. You can modify this shell script without
+# needing to rerun autoconf.
+
+# This shell script should be invoked as
+# . configure.target
+# If it encounters an error, it will exit with a message.
+
+# It uses the following shell variables:
+# target The configuration target
+# target_cpu The configuration target CPU
+# target_os The configuration target OS
+# target_optspace --enable-target-optspace ("yes", "no", "")
+
+# It sets the following shell variables:
+# libgcj_cflags Special CFLAGS to use when building
+# libgcj_cxxflags Special CXXFLAGS to use when building
+# libgcj_javaflags Special JAVAFLAGS to use when building
+# libgcj_interpreter If the bytecode interpreter supports this platform.
+# enable_java_net_default If java.net native code should be enabled by
+# default.
+# enable_hash_synchronization_default If hash synchronization should be
+# enabled by default.
+# sysdeps_dir Directory containing system-dependent headers
+# slow_pthread_self The synchronization code should try to avoid
+# pthread_self calls by caching thread IDs in a hashtable
+
+libgcj_flags=
+libgcj_cflags=
+libgcj_cxxflags=
+libgcj_javaflags=
+libgcj_interpreter=
+enable_java_net_default=yes
+enable_hash_synchronization_default=no
+sysdeps_dir=generic
+slow_pthread_self=
+
+case "${target_optspace}:${target}" in
+ yes:*)
+ libgcj_flags="${libgcj_flags} -Os"
+ ;;
+ :m32r-* | :d10v-* | :d30v-*)
+ libgcj_flags="${libgcj_flags} -Os"
+ ;;
+ no:* | :*)
+ # Nothing.
+ ;;
+esac
+
+AM_RUNTESTFLAGS=
+
+echo "$target"
+
+DIVIDESPEC=-fuse-divide-subroutine
+REFERENCESPEC=
+EXCEPTIONSPEC=-fnon-call-exceptions
+
+# Set any CPU dependent compiler flags.
+# THIS TABLE IS SORTED. KEEP IT THAT WAY.
+case "${target_cpu}" in
+ alpha*)
+ sysdeps_dir=alpha
+ libgcj_flags="${libgcj_flags} -mieee"
+ libgcj_interpreter=yes
+ enable_hash_synchronization_default=yes
+ ;;
+ i[3456]6)
+ sysdeps_dir=i386
+ libgcj_flags="${libgcj_flags} -ffloat-store"
+ libgcj_interpreter=yes
+ libgcj_cxxflags="-D__NO_MATH_INLINES"
+ libgcj_cflags="-D__NO_MATH_INLINES"
+ DIVIDESPEC=-fno-use-divide-subroutine
+ enable_hash_synchronization_default=yes
+ slow_pthread_self=yes
+ ;;
+ ia64)
+ sysdeps_dir=ia64
+ libgcj_flags="${libgcj_flags} -funwind-tables"
+ libgcj_interpreter=yes
+ enable_hash_synchronization_default=yes
+ ;;
+esac
+
+# Set any OS dependent compiler flags.
+# THIS TABLE IS SORTED. KEEP IT THAT WAY.
+case "${target_os}" in
+ solaris2*)
+ REFERENCESPEC=-fcheck-references
+ ;;
+esac
+
+# Set any flags dependent on the full target triplet.
+# THIS TABLE IS SORTED. KEEP IT THAT WAY.
+case "${target}" in
+ i?86-*-solaris2*)
+ # override i?86 default
+ DIVIDESPEC=-use-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
+ enable_java_net_default=no
+ enable_getenv_properties_default=no
+ ;;
+ powerpc*-darwin*)
+ sysdeps_dir=powerpc
+ libgcj_interpreter=yes
+ ;;
+ powerpc*-linux*)
+ sysdeps_dir=powerpc
+ libgcj_interpreter=yes
+ enable_hash_synchronization_default=yes
+ slow_pthread_self=yes
+ ;;
+ xscale*-elf)
+ with_libffi_default=no
+ PROCESS=Ecos
+ enable_java_net_default=no
+ enable_getenv_properties_default=no
+ enable_main_args_default=no
+ ;;
+esac
+
+libgcj_cflags="${libgcj_cflags} ${libgcj_flags}"
+libgcj_cxxflags="${libgcj_cxxflags} ${libgcj_flags}"
+libgcj_javaflags="${libgcj_javaflags} ${libgcj_flags}"
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月18日 20:47:19
@@ -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月18日 20:47:19
@@ -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
More information about the Java
mailing list