diff --git a/libjava/ChangeLog b/libjava/ChangeLog index 17650b1d35f..726c2eeebc3 100644 --- a/libjava/ChangeLog +++ b/libjava/ChangeLog @@ -1,9 +1,12 @@ +2015-05-24 Eric Botcazou + + * configure: Regenerate. + 2015-05-13 Eric Botcazou * configure.ac: Include config/sjlj.m4. Remove manual SJLJ check, add GCC_CHECK_SJLJ_EXCEPTIONS and adjust. * include/config.h.in: Regenerate. - * configure: Likewise. * exception.cc: Replace SJLJ_EXCEPTIONS by __USING_SJLJ_EXCEPTIONS__. * stacktrace.cc: Likewise. * include/default-signal.h: Likewise. diff --git a/libjava/configure b/libjava/configure index 6cf9d70a24e..0f31b0b2524 100755 --- a/libjava/configure +++ b/libjava/configure @@ -950,7 +950,6 @@ enable_reduced_reflection with_win32_nlsapi enable_gc_debug enable_interpreter -enable_sjlj_exceptions enable_java_net with_libffi enable_jvmpi @@ -1645,8 +1644,6 @@ Optional Features: building portions of libgcj --enable-gc-debug include full support for pointer backtracing etc. --enable-interpreter enable interpreter - --enable-sjlj-exceptions - force use of builtin_setjmp for exceptions --disable-java-net disable java.net --disable-jvmpi disable JVMPI support --enable-java-gc=TYPE choose garbage collector (default is boehm) @@ -13392,7 +13389,7 @@ else lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 lt_status=$lt_dlunknown cat > conftest.$ac_ext <<_LT_EOF -#line 13395 "configure" +#line 13392 "configure" #include "confdefs.h" #if HAVE_DLFCN_H @@ -13498,7 +13495,7 @@ else lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 lt_status=$lt_dlunknown cat > conftest.$ac_ext <<_LT_EOF -#line 13501 "configure" +#line 13498 "configure" #include "confdefs.h" #if HAVE_DLFCN_H @@ -19482,70 +19479,36 @@ else fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for exception model to use" >&5 -$as_echo_n "checking for exception model to use... " >&6; } -ac_ext=cpp -ac_cpp='$CXXCPP $CPPFLAGS' -ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_cxx_compiler_gnu - -# Check whether --enable-sjlj-exceptions was given. -if test "${enable_sjlj_exceptions+set}" = set; then : - enableval=$enable_sjlj_exceptions; : -else - cat > conftest.$ac_ext << EOF -#line 19498 "configure" -struct S { ~S(); }; -void bar(); -void foo() -{ - S s; - bar(); -} -EOF -old_CXXFLAGS="$CXXFLAGS" -CXXFLAGS=-S -if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 - (eval $ac_compile) 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; }; then - if grep _Unwind_SjLj_Resume conftest.s >/dev/null 2>&1 ; then - enable_sjlj_exceptions=yes - elif grep _Unwind_Resume conftest.s >/dev/null 2>&1 ; then - enable_sjlj_exceptions=no - elif grep __cxa_end_cleanup conftest.s >/dev/null 2>&1 ; then - # ARM EH ABI. - enable_sjlj_exceptions=no - fi -fi -CXXFLAGS="$old_CXXFLAGS" -rm -f conftest* -fi - -if test x$enable_sjlj_exceptions = xyes; then - -$as_echo "#define SJLJ_EXCEPTIONS 1" >>confdefs.h - - ac_exception_model_name=sjlj -elif test x$enable_sjlj_exceptions = xno; then - ac_exception_model_name="call frame" -else - as_fn_error "unable to detect exception model" "$LINENO" 5 -fi -ac_ext=c -ac_cpp='$CPP $CPPFLAGS' -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_c_compiler_gnu - -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_exception_model_name" >&5 -$as_echo "$ac_exception_model_name" >&6; } - -# If we are non using SJLJ exceptions, and this host does not have support +# If we are not 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 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the compiler is configured for setjmp/longjmp exceptions" >&5 +$as_echo_n "checking whether the compiler is configured for setjmp/longjmp exceptions... " >&6; } +if test "${ac_cv_sjlj_exceptions+set}" = set; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#ifdef __USING_SJLJ_EXCEPTIONS__ + this will fail + #endif +int +main () +{ +int i; + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + ac_cv_sjlj_exceptions=no +else + ac_cv_sjlj_exceptions=yes +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sjlj_exceptions" >&5 +$as_echo "$ac_cv_sjlj_exceptions" >&6; } +if test $ac_cv_sjlj_exceptions = no && test $can_unwind_signal = no; then CHECKREFSPEC=-fcheck-references DIVIDESPEC=-fuse-divide-subroutine EXCEPTIONSPEC= @@ -24455,7 +24418,7 @@ case "${host}" in esac # If we're using sjlj exceptions, forget what we just learned. -if test "$enable_sjlj_exceptions" = yes; then +if test "$ac_cv_sjlj_exceptions" = yes; then SIGNAL_HANDLER=include/default-signal.h SIGNAL_HANDLER_AUX= fi