まつもと ゆきひろです

In message "[ruby-list:8621] Re: can't build 1.1b9_28 on digital-unix"
    on 98/07/02, Go Nakagawa <nakagawa / shizuokanet.ne.jp> writes:

|中川です。

|> これらの原因はそこにあります.私の手元からalphaマシンが無く
|> なって以来全然チェックしていませんから.
|
|やはり sizeof(long)==8 がミソなんですね。

そうですね.FIX2INT()とFIX2LONG()が区別されてませんでした.
32bitアーキテクチャではこの二つは同じなので.

1.1b9_29では修正されるはずです.

|> まず,marshal.cがコンパイルできない件は添付のパッチでうまく
|> 行くのではないかと思います.warningは残るかも.
|
|コンパイルは上手くいきました。ありがとうございます。warning は
        :
|marshal.c:777: warning: cast from pointer to integer of different size
        :
|みたいな感じです。

以下のパッチでどうでしょう.

--- marshal.c	1998/06/26 09:44:27	1.1.1.1.2.12
+++ marshal.c	1998/07/03 05:02:46
@@ -513,4 +513,5 @@
 
+static long blen;		/* hidden length register */
 #define r_bytes(s, arg) \
-  (s = (char*)r_long(arg), r_bytes0(&s,ALLOCA_N(char,(long)s),(long)s,arg))
+  (blen = r_long(arg), r_bytes0(&s,ALLOCA_N(char,blen),blen,arg))