This is the mail archive of the
java-patches@gcc.gnu.org
mailing list for the Java project.
Re: PATCH: libjava NetBSD configuration
Anthony Green wrote:
>On Wed, 2002-04-10 at 21:58, Bryce McKinlay wrote:
>
>>Actually for 3.1 we should really set these for all targets that both:
>>
>>- arn't linux on alpha/PPC/IA64/x86
>>- arn't using SJLJ exceptions
>>
>
>It's not that simple. xscale-elf is using SJLJ exceptions but still
>requires -fcheck-references.
>
Ok. Here's the updated patch which doesn't change the settings for
xscale-elf. I'm checking this one in.
regards
Bryce.
2002-04-11 Bryce McKinlay <bryce@waitaki.otago.ac.nz>
* configure.host: Set can_unwind_signal on hosts which support it.
Don't set CHECKREFSPEC and DIVIDESPEC for FreeBSD.
* configure.in: Set CHECKREFSPEC and DIVIDESPEC if not using SJLJ
exceptions and can_unwind_signal isn't set.
* configure: Rebuilt.
Index: configure.host
===================================================================
RCS file: /cvs/gcc/egcs/libjava/configure.host,v
retrieving revision 1.23.2.5
diff -u -r1.23.2.5 configure.host
--- configure.host 5 Apr 2002 04:19:30 -0000 1.23.2.5
+++ configure.host 11 Apr 2002 22:13:43 -0000
@@ -26,6 +26,8 @@
# 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
+# can_unwind_signal Set to "yes" if the EH unwinder supports throwing
+# from a signal handler.
libgcj_flags=
libgcj_cflags=
@@ -36,6 +38,7 @@
enable_hash_synchronization_default=no
sysdeps_dir=generic
slow_pthread_self=
+can_unwind_signal=no
case "${target_optspace}:${host}" in
yes:*)
@@ -115,18 +118,21 @@
esac
# This case statement supports generic port properties and may refine
-# the above per-CPU defaults. Note: If your OS does not implement
-# MD_FALLBACK_FRAME_STATE_FOR, then you may want to set CHECKREFSPEC,
-# DIVIDESPEC (to fix >20 test cases) and EXCEPTIONSPEC (to reduce EH
-# bloat only) here.
+# the above per-CPU defaults. Note: If your OS implements
+# MD_FALLBACK_FRAME_STATE_FOR, then you want to set can_unwind_signal
+# here.
case "${host}" in
+ i[34567]86*-linux* | \
+ powerpc*-linux* | \
+ alpha*-linux* | \
+ ia64-*)
+ can_unwind_signal=yes
+ ;;
*-*-darwin*)
enable_hash_synchronization_default=no
slow_pthread_self=
;;
*-*-freebsd*)
- DIVIDESPEC=-fuse-divide-subroutine
- CHECKREFSPEC=-fcheck-references
slow_pthread_self=
;;
esac
Index: configure.in
===================================================================
RCS file: /cvs/gcc/egcs/libjava/configure.in,v
retrieving revision 1.114.2.11
diff -u -r1.114.2.11 configure.in
--- configure.in 10 Apr 2002 13:10:13 -0000 1.114.2.11
+++ configure.in 11 Apr 2002 22:13:43 -0000
@@ -153,6 +153,14 @@
AC_LANG_RESTORE
AC_MSG_RESULT($ac_exception_model_name)
+# If we are non using SJLJ exceptions, and this host does not have support
+# for unwinding from a signal handler, enable checked dereferences and divides.
+if test $can_unwind_signal = no && test $enable_sjlj_exceptions = no; then
+ CHECKREFSPEC=-fcheck-references
+ DIVIDESPEC=-fuse-divide-subroutine
+ EXCEPTIONSPEC=
+fi
+
dnl See if the user wants to disable java.net. This is the mildly
dnl ugly way that we admit that target-side configuration sucks.
AC_ARG_ENABLE(java-net,