diff options
author | nobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2008-03-31 17:58:14 +0000 |
---|---|---|
committer | nobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2008-03-31 17:58:14 +0000 |
commit | ba570c7378a324629a41e31936e019f928f1393d (patch) | |
tree | d4a6231e6d80cd796725d7b0aa0c41daeceaa401 /eval.c | |
parent | 84ee429e83873a975150a9cdaca1568f424701c1 (diff) |
* configure.in (RUBY_SETJMP, RUBY_LONGJMP, RUBY_JMP_BUF): prefers
__builtin_setjmp, _setjmp over setjmp and sigsetjmp.
[ruby-core:16023], [ruby-core:16086]
* configure.in (--with-setjmp-type): new option to override the
default rule in the above.
* eval.c (ruby_setjmp, ruby_longjmp), gc.c (rb_setjmp),
node.h (rb_jmpbuf_t): use RUBY_SETJMP, RUBY_LONGJMP and
RUBY_JMP_BUF.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@15870 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'eval.c')
-rw-r--r-- | eval.c | 13 |
1 files changed, 5 insertions, 8 deletions
@@ -193,14 +193,11 @@ static int volatile freebsd_clear_carry_flag = 0; POST_GETCONTEXT, \ (j)->status) #else -# if !defined(setjmp) && defined(HAVE__SETJMP) && !defined(sigsetjmp) && !defined(HAVE_SIGSETJMP) -# define ruby_setjmp(just_before_setjmp, env) \ - ((just_before_setjmp), _setjmp(env)) -# define ruby_longjmp(env,val) _longjmp(env,val) -# else -# define ruby_setjmp(just_before_setjmp, env) \ - ((just_before_setjmp), setjmp(env)) -# define ruby_longjmp(env,val) longjmp(env,val) +# define ruby_setjmp(just_before_setjmp, env) \ + ((just_before_setjmp), RUBY_SETJMP(env)) +# define ruby_longjmp(env,val) RUBY_LONGJMP(env,val) +# ifdef __CYGWIN__ +int _setjmp(), _longjmp(); # endif #endif |