aboutsummaryrefslogtreecommitdiff
path: root/config/unwind_ipinfo.m4
diff options
context:
space:
mode:
Diffstat (limited to 'config/unwind_ipinfo.m4')
-rw-r--r--config/unwind_ipinfo.m441
1 files changed, 25 insertions, 16 deletions
diff --git a/config/unwind_ipinfo.m4 b/config/unwind_ipinfo.m4
index 5587d9c..a1dc635 100644
--- a/config/unwind_ipinfo.m4
+++ b/config/unwind_ipinfo.m4
@@ -1,22 +1,31 @@
dnl
-dnl Check whether _Unwind_GetIPInfo is available.
+dnl Check whether _Unwind_GetIPInfo is available without doing a link
+dnl test so we can use this with libstdc++-v3 and libjava. Need to
+dnl use $target to set defaults because automatic checking is not possible
+dnl without a link test (and maybe even with a link test).
dnl
+
AC_DEFUN([GCC_CHECK_UNWIND_GETIPINFO], [
- AC_LANG_SAVE
- AC_LANG_CPLUSPLUS
- ac_save_CXXFLAGS="$CXXFLAGS"
- CXXFLAGS="$CXXFLAGS -fno-exceptions"
- AC_MSG_CHECKING([for _Unwind_GetIPInfo])
- AC_CACHE_VAL(gcc_cv_getipinfo, [
- AC_TRY_LINK([extern "C" { extern void _Unwind_GetIPInfo(); }],
- [_Unwind_GetIPInfo();],
- [gcc_cv_getipinfo=yes],
- [gcc_cv_getipinfo=no])
- ])
- if test $gcc_cv_getipinfo = yes; then
+ AC_ARG_WITH(system-libunwind,
+ [ --with-system-libunwind use installed libunwind])
+ # If system-libunwind was not specifically set, pick a default setting.
+ if test x$with_system_libunwind = x; then
+ case ${target} in
+ ia64-*-hpux*) with_system_libunwind=yes ;;
+ *) with_system_libunwind=no ;;
+ esac
+ fi
+ # Based on system-libunwind and target, do we have ipinfo?
+ if test x$with_system_libunwind = xyes; then
+ case ${target} in
+ ia64-*-*) have_unwind_getipinfo=no ;;
+ *) have_unwind_getipinfo=yes ;;
+ esac
+ else
+ have_unwind_getipinfo=yes
+ fi
+
+ if test x$have_unwind_getipinfo = xyes; then
AC_DEFINE(HAVE_GETIPINFO, 1, [Define if _Unwind_GetIPInfo is available.])
fi
- AC_MSG_RESULT($gcc_cv_getipinfo)
- CXXFLAGS="$ac_save_CXXFLAGS"
- AC_LANG_RESTORE
])