1
0
Fork 0
mirror of https://github.com/ruby/ruby.git synced 2022-11-09 12:17:21 -05:00
ruby--ruby/tool/m4/ruby_check_builtin_setjmp.m4
shyouhei 0664a6377a refactor split configure.ac into files
This does not (yet) change anything. The generated configure file
is the identical to previous one (except several empty lines added
and deleted).

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@61981 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-01-20 07:05:25 +00:00

26 lines
802 B
Text

AC_DEFUN([RUBY_CHECK_BUILTIN_SETJMP], [
AS_IF([test x"${ac_cv_func___builtin_setjmp}" = xyes], [
unset ac_cv_func___builtin_setjmp
])
AC_CACHE_CHECK(for __builtin_setjmp, ac_cv_func___builtin_setjmp,
[
ac_cv_func___builtin_setjmp=no
for cast in "" "(void **)"; do
RUBY_WERROR_FLAG(
[AC_TRY_LINK([@%:@include <setjmp.h>
@%:@include <stdio.h>
jmp_buf jb;
@%:@ifdef NORETURN
NORETURN(void t(void));
@%:@endif
void t(void) {__builtin_longjmp($cast jb, 1);}
int jump(void) {(void)(__builtin_setjmp($cast jb) ? 1 : 0); return 0;}],
[
void (*volatile f)(void) = t;
if (!jump()) printf("%d\n", f != 0);
],
[ac_cv_func___builtin_setjmp="yes with cast ($cast)"])
])
test "$ac_cv_func___builtin_setjmp" = no || break
done])
])dnl