diff options
author | nobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2003-06-28 03:29:00 +0000 |
---|---|---|
committer | nobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2003-06-28 03:29:00 +0000 |
commit | e5a9dcb9d8863fc2ad44c4f85a10a95329e3c154 (patch) | |
tree | e3fcc29316c79f8df372319c472d4875271d0f8e /configure.in | |
parent | 057dcc0495e9f6e85c322bf294dd03dde3899de7 (diff) |
* 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
Diffstat (limited to 'configure.in')
-rw-r--r-- | configure.in | 24 |
1 files changed, 24 insertions, 0 deletions
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" |