From e5a9dcb9d8863fc2ad44c4f85a10a95329e3c154 Mon Sep 17 00:00:00 2001 From: nobu Date: Sat, 28 Jun 2003 03:29:00 +0000 Subject: * configure.in (rb_cv_stack_grow_dir): check stack growing direction. * eval.c (rb_thread_restore_context): prior configuration macro. * gc.c (ruby_stack_length): always return the address of lower edge. * gc.c (rb_gc_mark_locations): remove margin. [ruby-dev:20462] * gc.c (rb_gc, Init_stack): prior configuration macro. * gc.c (Init_stack): add safety margin. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@4012 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- configure.in | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) (limited to 'configure.in') diff --git a/configure.in b/configure.in index ec6abaef71..cebfc766b0 100644 --- a/configure.in +++ b/configure.in @@ -616,6 +616,30 @@ if test "$rb_cv_need_io_flush_before_seek" = yes; then AC_DEFINE(NEED_IO_FLUSH_BEFORE_SEEK, 1) fi +case "$target_cpu" in +m68*|i?86|sparc) rb_cv_stack_grow_dir=-1;; +esac +AC_CACHE_CHECK(stack growing direction, rb_cv_stack_grow_dir, + [AC_TRY_RUN([ +/* 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); +} +], rb_cv_stack_grow_dir=-1, rb_cv_stack_grow_dir=+1, rb_cv_stack_grow_dir=0)]) +AC_DEFINE_UNQUOTED(STACK_GROW_DIRECTION, $rb_cv_stack_grow_dir) + dnl default value for $KANJI DEFAULT_KCODE="KCODE_NONE" -- cgit v1.2.3