[#12164] patch for ext/gdbm — Koji Arai <JCA02266@...>

新井です。

24 messages 2001/02/04
[#12168] Re: patch for ext/gdbm — matz@... (Yukihiro Matsumoto) 2001/02/05

まつもと ゆきひろです

[#12176] Re: patch for ext/gdbm — Koji Arai <JCA02266@...> 2001/02/05

新井です。

[#12179] Re: patch for ext/gdbm — matz@... (Yukihiro Matsumoto) 2001/02/06

まつもと ゆきひろです

[#12219] Re: patch for ext/gdbm — Koji Arai <JCA02266@...> 2001/02/12

新井です。

[#12220] Re: patch for ext/gdbm — Koji Arai <JCA02266@...> 2001/02/12

新井です。

[#12256] set_trace_func — keiju@... (Keiju ISHITSUKA)

けいじゅ@日本ラショナルソフトウェアです.

15 messages 2001/02/17

[#12293] crash on proc without a block — Kenichi Komiya <kom@...1.accsnet.ne.jp>

15 messages 2001/02/25

[#12323] Re: [ruby-list:28364] class definition extension — "K.Kosako" <kosako@...>

ruby-listから移動しました。

13 messages 2001/02/28
[#12324] Re: [ruby-list:28364] class definition extension — matz@... (Yukihiro Matsumoto) 2001/02/28

まつもと ゆきひろです

[ruby-dev:12310] Re: __builtin_frame_address(2)

From: nobu.nakada@...
Date: 2001-02-26 22:20:07 UTC
List: ruby-dev #12310
なかだです。

At Mon, 26 Feb 2001 15:23:46 +0900,
matz@zetabits.com (Yukihiro Matsumoto) wrote:
> というか、「はっきりダメなことが分かってる」のはgccですよね。
> 自分が -fomit-frame-pointer が指定されているかどうか確実に知っ
> ているのはgccなんですから。ということで、gccが警告を出してく
> れるのが筋では?

  そうかも知れませんが、スタックフレームのネストレベルは結局ラ
ンタイムにしか分からないような気もちょっと。

> |  あるいは configure で __builtin_frame_address() を使うかどう
> |か選べてもいいと思うのですが。
> 
> それについては否定はしませんけどね。

  とりあえずこんなとこでしょうか。


Index: configure.in
===================================================================
RCS file: /cvs/ruby/src/ruby/configure.in,v
retrieving revision 1.78
diff -u -2 -p -r1.78 configure.in
--- configure.in	2001/02/26 05:29:00	1.78
+++ configure.in	2001/02/26 15:13:45
@@ -75,4 +75,15 @@ AC_ARG_ENABLE(fat-binary,
 fi 
 
+case $target_cpu in
+  i?86) frame_address=yes;;
+  *)    frame_address=no;;
+esac
+AC_ARG_ENABLE(frame-address,
+       [--enable-frame-address   not use GCC __builtin_frame_address(). ],
+       [frame_address=$enableval])
+if test $frame_address = yes; then
+    AC_DEFINE(BUILTIN_FRAME_ADDRESS)
+fi
+
 AC_ARG_PROGRAM
 
Index: eval.c
===================================================================
RCS file: /cvs/ruby/src/ruby/eval.c,v
retrieving revision 1.157
diff -u -2 -p -r1.157 eval.c
--- eval.c	2001/02/26 05:29:00	1.157
+++ eval.c	2001/02/26 14:12:10
@@ -4134,5 +4134,5 @@ stack_length(p)
 # define STACK_END (&stack_end)
 #else
-# if defined(__GNUC__) && defined(__i386__)
+# if defined(__GNUC__) && defined(BUILTIN_FRAME_ADDRESS)
     VALUE *stack_end = __builtin_frame_address(0);
 # else
Index: gc.c
===================================================================
RCS file: /cvs/ruby/src/ruby/gc.c,v
retrieving revision 1.60
diff -u -2 -p -r1.60 gc.c
--- gc.c	2001/02/11 07:12:02	1.60
+++ gc.c	2001/02/26 13:50:15
@@ -950,5 +950,5 @@ rb_gc()
 # define STACK_END (&stack_end)
 #else
-# if defined(__GNUC__) && defined(__i386__)
+# if defined(__GNUC__) && defined(BUILTIN_FRAME_ADDRESS)
     VALUE *stack_end = __builtin_frame_address(0);
 # else
@@ -1030,5 +1030,5 @@ Init_stack(addr)
     extern void *_SEND;
     rb_gc_stack_start = _SEND;
-#elif defined(__GNUC__) && defined(__i386__)
+#elif defined(__GNUC__) && defined(BUILTIN_FRAME_ADDRESS)
     rb_gc_stack_start = __builtin_frame_address(2);
 #else


-- 
--- 僕の前にBugはない。
--- 僕の後ろにBugはできる。
    中田 伸悦

In This Thread