summaryrefslogtreecommitdiff
path: root/configure.in
diff options
context:
space:
mode:
authornari <nari@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2012-10-03 12:30:21 +0000
committernari <nari@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2012-10-03 12:30:21 +0000
commit8d53a08ed81ae1dbaabef79fcf0b0e759de2e82f (patch)
tree6ec1ad8d5b04bf52d153ddf7b674e31ac8558f8d /configure.in
parentf6d0cb46f6a97018a3cb21916cb289c9e334045e (diff)
* gc.c: Use the non-recursive marking instead of recursion. The
recursion marking of CRuby needs checking stack overflow and the fail-safe system, but these systems not good at partial points, for example, marking deep tree structures. [ruby-dev:46184] [Feature #7095] * configure.in (GC_MARK_STACKFRAME_WORD): removed. It's used by checking stack overflow of marking. * win32/Makefile.sub (GC_MARK_STACKFRAME_WORD): ditto. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@37075 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'configure.in')
-rw-r--r--configure.in56
1 files changed, 0 insertions, 56 deletions
diff --git a/configure.in b/configure.in
index c8fadab9e4..e2d43d1cdb 100644
--- a/configure.in
+++ b/configure.in
@@ -1384,62 +1384,6 @@ if test $rb_cv_stack_end_address != no; then
AC_DEFINE_UNQUOTED(STACK_END_ADDRESS, $rb_cv_stack_end_address)
fi
-AC_CACHE_CHECK(for gc_mark and gc_children stack frame approximate size(word), rb_cv_gc_mark_stackframe_word,
-[save_CFLAGS="$CFLAGS"
-CFLAGS="-O0"
-AC_TRY_RUN([
-int word;
-char *stack_start;
-
-void
-set_stackframe_word()
-{
- int dumy = 42;
- int diff;
-
- if (stack_start < (char *)&dumy) {
- diff = (int)((char *)&dumy - stack_start);
- }
- else {
- diff = (int)(stack_start - (char *)&dumy);
- }
- word = (diff/sizeof(void *));
- if ((diff % sizeof(void *)) != 0) {
- word++;
- }
-}
-
-void
-gc_mark_children(void *p1, void *p2, int lev)
-{
- void *obj = p2;
-
- set_stackframe_word(p1,p2,lev);
-}
-
-void
-gc_mark(void *p1, void *p2, int lev)
-{
- void *obj = p2;
-
- gc_mark_children(p1,p2,lev++);
-}
-
-int
-main() {
- int dumy = 42;
-
- stack_start = (char *)&dumy;
- gc_mark(0, 0, 255);
- return word;
-}
-],
- [rb_cv_gc_mark_stackframe_word="$?"],
- [rb_cv_gc_mark_stackframe_word="$?"],
- [rb_cv_gc_mark_stackframe_word="30"])
-CFLAGS="$save_CFLAGS"])
-AC_DEFINE_UNQUOTED(GC_MARK_STACKFRAME_WORD, $rb_cv_gc_mark_stackframe_word)
-
AS_CASE(["$target_os"],
[openbsd*], [
AC_CACHE_CHECK(for heap align log on openbsd, rb_cv_page_size_log,