summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog6
-rw-r--r--configure.in2
-rw-r--r--eval_intern.h2
-rw-r--r--gc.c2
4 files changed, 9 insertions, 3 deletions
diff --git a/ChangeLog b/ChangeLog
index 92cfe9fff4..e6fc5da5af 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,9 @@
+Sat Jan 19 11:21:53 2008 Nobuyoshi Nakada <nobu@ruby-lang.org>
+
+ * configure.in (sigsetjmp): check if available.
+
+ * eval.c, gc.c (setjmp): do not use _setjmp if sigsetjmp is available.
+
Sat Jan 19 11:10:11 2008 Nobuyoshi Nakada <nobu@ruby-lang.org>
* configure.in: Remove wrong assumptions about Cygwin. a patch from
diff --git a/configure.in b/configure.in
index a0f281c3ad..e2e549c8bb 100644
--- a/configure.in
+++ b/configure.in
@@ -652,7 +652,7 @@ AC_CHECK_FUNCS(fmod killpg wait4 waitpid fork spawnv syscall chroot fsync getcwd
setrgid setegid setregid setresgid issetugid pause lchown lchmod\
getpgrp setpgrp getpgid setpgid initgroups getgroups setgroups\
getpriority getrlimit setrlimit sysconf group_member\
- dlopen sigprocmask sigaction _setjmp vsnprintf snprintf\
+ dlopen sigprocmask sigaction sigsetjmp _setjmp vsnprintf snprintf\
setsid telldir seekdir fchmod cosh sinh tanh log2 round\
setuid setgid daemon select_large_fdset setenv unsetenv\
mktime timegm clock_gettime gettimeofday)
diff --git a/eval_intern.h b/eval_intern.h
index 4436fcc32d..d9d907aeef 100644
--- a/eval_intern.h
+++ b/eval_intern.h
@@ -81,7 +81,7 @@ char *strrchr(const char *, const char);
#include "vmsruby_private.h"
#endif
-#if !defined(setjmp) && defined(HAVE__SETJMP)
+#if !defined(setjmp) && defined(HAVE__SETJMP) && !defined(HAVE_SIGSETJMP)
#define ruby_setjmp(env) _setjmp(env)
#define ruby_longjmp(env,val) _longjmp(env,val)
#else
diff --git a/gc.c b/gc.c
index 8209cf7db2..7295cb0b44 100644
--- a/gc.c
+++ b/gc.c
@@ -50,7 +50,7 @@
int rb_io_fptr_finalize(struct rb_io_t*);
-#if !defined(setjmp) && defined(HAVE__SETJMP)
+#if !defined(setjmp) && defined(HAVE__SETJMP) && !defined(HAVE_SIGSETJMP)
#define setjmp(env) _setjmp(env)
#endif