aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--ChangeLog9
-rw-r--r--configure.in3
-rw-r--r--include/ruby/defines.h2
3 files changed, 12 insertions, 2 deletions
diff --git a/ChangeLog b/ChangeLog
index da2a1e53c7..b05483c3ed 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,12 @@
+Sun May 19 01:39:50 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
+
+ * configure.in (setjmp-type): check if setjmpex() is really available.
+ workaround for i686-w64-mingw32 which declares it but lacks its
+ definition.
+
+ * include/ruby/defines.h: include setjmpex.h only if also setjmpex()
+ is available.
+
Sat May 18 23:57:46 2013 Nobuyoshi Nakada <nobu@ruby-lang.org>
* configure.in (setjmp-type): use setjmpex() on w64-mingw32 to get rid
diff --git a/configure.in b/configure.in
index eaa203b618..6f559d6395 100644
--- a/configure.in
+++ b/configure.in
@@ -1724,6 +1724,7 @@ fi
AC_CHECK_FUNCS(__syscall)
AC_CHECK_FUNCS(_longjmp) # used for AC_ARG_WITH(setjmp-type)
AC_CHECK_FUNCS(_setjmp) # used for AC_ARG_WITH(setjmp-type)
+AC_CHECK_FUNCS(_setjmpex) # used for AC_ARG_WITH(setjmp-type)
AC_CHECK_FUNCS(chroot)
AC_CHECK_FUNCS(chsize)
AC_CHECK_FUNCS(clock_gettime)
@@ -1876,7 +1877,7 @@ if test ${setjmp_prefix+set}; then
elif test "$ac_cv_func___builtin_setjmp" = yes; then
setjmp_prefix=__builtin_
setjmp_suffix=
-elif test "$ac_cv_header_setjmpex_h" = yes; then
+elif test "$ac_cv_header_setjmpex_h:$ac_cv_func__setjmpex" = yes:yes; then
setjmp_prefix=
setjmp_suffix=ex
elif test "$ac_cv_func__setjmp" = yes; then
diff --git a/include/ruby/defines.h b/include/ruby/defines.h
index 31a8f6b22a..9b75647e64 100644
--- a/include/ruby/defines.h
+++ b/include/ruby/defines.h
@@ -61,7 +61,7 @@ extern "C" {
# include <sys/select.h>
#endif
-#ifdef HAVE_SETJMPEX_H
+#if defined HAVE_SETJMPEX_H && defined HAVE__SETJMPEX
#include <setjmpex.h>
#endif