summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authornobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2008-01-19 02:21:55 +0000
committernobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2008-01-19 02:21:55 +0000
commit475449aa18cad79a443d994bc88431b4319f8513 (patch)
treecf11acdcd7b6cfd73dc81d2459279c9406bd63ce
parent9b298597234470a9b0c2c95aeb30feb342991764 (diff)
* configure.in (sigsetjmp): check if available.
* eval.c, gc.c (setjmp): do not use _setjmp if sigsetjmp is available. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@15124 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
-rw-r--r--ChangeLog6
-rw-r--r--configure.in2
-rw-r--r--eval.c2
-rw-r--r--gc.c2
4 files changed, 9 insertions, 3 deletions
diff --git a/ChangeLog b/ChangeLog
index 11ef11743e..61e33aa723 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 7817c252d8..4dbd6f019a 100644
--- a/configure.in
+++ b/configure.in
@@ -554,7 +554,7 @@ AC_CHECK_FUNCS(fmod killpg wait4 waitpid syscall chroot fsync getcwd eaccess\
lchown lchmod getpgrp setpgrp getpgid setpgid initgroups\
getgroups setgroups getpriority getrlimit setrlimit sysconf\
group_member dlopen sigprocmask\
- sigaction _setjmp setsid telldir seekdir fchmod\
+ sigaction sigsetjmp _setjmp setsid telldir seekdir fchmod\
mktime timegm gettimeofday\
cosh sinh tanh round setuid setgid setenv unsetenv)
AC_ARG_ENABLE(setreuid,
diff --git a/eval.c b/eval.c
index e83e9327c1..b8f17da3ea 100644
--- a/eval.c
+++ b/eval.c
@@ -193,7 +193,7 @@ static int volatile freebsd_clear_carry_flag = 0;
POST_GETCONTEXT, \
(j)->status)
#else
-# if !defined(setjmp) && defined(HAVE__SETJMP)
+# if !defined(setjmp) && defined(HAVE__SETJMP) && !defined(HAVE_SIGSETJMP)
# define ruby_setjmp(just_before_setjmp, env) \
((just_before_setjmp), _setjmp(env))
# define ruby_longjmp(env,val) _longjmp(env,val)
diff --git a/gc.c b/gc.c
index a04804902a..3aca970ddd 100644
--- a/gc.c
+++ b/gc.c
@@ -37,7 +37,7 @@
void re_free_registers _((struct re_registers*));
void rb_io_fptr_finalize _((struct OpenFile*));
-#if !defined(setjmp) && defined(HAVE__SETJMP)
+#if !defined(setjmp) && defined(HAVE__SETJMP) && !defined(HAVE_SIGSETJMP)
#define setjmp(env) _setjmp(env)
#endif