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_stack_grow_direction.m4

Ignoring revisions in .git-blame-ignore-revs. Click here to bypass and see the normal blame view.

31 lines
717 B
Text
Raw Normal View History

dnl -*- Autoconf -*-
AC_DEFUN([RUBY_STACK_GROW_DIRECTION], [
AS_VAR_PUSHDEF([stack_grow_dir], [rb_cv_stack_grow_dir_$1])
AC_CACHE_CHECK(stack growing direction on $1, stack_grow_dir, [
AS_CASE(["$1"],
2019-06-19 05:06:57 -04:00
[m68*|x86*|x64|i?86|ppc*|sparc*|alpha*], [ $2=-1],
[hppa*], [ $2=+1],
[
2020-12-12 08:55:09 -05:00
AC_RUN_IFELSE([AC_LANG_SOURCE([[
/* recurse to get rid of inlining */
static int
stack_growup_p(addr, n)
volatile int *addr, n;
{
volatile int end;
if (n > 0)
return *addr = stack_growup_p(addr, n - 1);
else
return (&end > addr);
}
int main()
{
int x;
return stack_growup_p(&x, 10);
}
2020-12-12 08:55:09 -05:00
]])],[$2=-1],[$2=+1],[$2=0])
])
eval stack_grow_dir=\$$2])
eval $2=\$stack_grow_dir
AS_VAR_POPDEF([stack_grow_dir])])dnl