From: Katsuyuki Komatsu Date: 2000-05-19T12:08:45+09:00 Subject: [ruby-dev:9761] IRIX 6.5 cc -64 support 小松です。 st_lookup()の3番目の引数"char **value;"ですが、 st_lookup()は、 if (value != 0) *value = ptr->record; としていて、かつ、st_table_entryのrecordは、 char *record; なので、*valueの型がchar *と同じ大きさで、かつchar *と同じ alignmentである必要があります。 これと、node.hのstruct RNodeの中のintをすべてlongに変更すると、 なんとか、IRIX 6.5のcc -64でminirubyまで動いて、 miniruby sample/test.rb でpackの2以外は通るようになりました。 node.hの方はちょっと自信がないので、以下のパッチには入れていません。 Thu May 18 23:55:26 2000 Katsuyuki Komatsu * dln.c (search_undef): st_lookup()'s 3rd parameter should be a pointer of the variable which has the same size and alignment as `char *'. * marshal.c (w_symbol, w_object): ditto. * parse.y (rb_intern): ditto. Index: dln.c =================================================================== RCS file: /home/cvs/ruby/dln.c,v retrieving revision 1.10 diff -u -1 -p -r1.10 dln.c --- dln.c 2000/05/12 09:07:33 1.10 +++ dln.c 2000/05/18 14:55:26 @@ -883,3 +883,3 @@ search_undef(key, value, lib_tbl) { - int offset; + long offset; Index: marshal.c =================================================================== RCS file: /home/cvs/ruby/marshal.c,v retrieving revision 1.15 diff -u -1 -p -r1.15 marshal.c --- marshal.c 2000/05/12 09:07:41 1.15 +++ marshal.c 2000/05/18 14:55:26 @@ -150,3 +150,3 @@ w_symbol(id, arg) char *sym = rb_id2name(id); - int num; + long num; @@ -260,3 +260,3 @@ w_object(obj, arg, limit) else { - int num; + long num; Index: parse.y =================================================================== RCS file: /home/cvs/ruby/parse.y,v retrieving revision 1.31 diff -u -1 -p -r1.31 parse.y --- parse.y 2000/05/18 04:32:06 1.31 +++ parse.y 2000/05/18 14:55:26 @@ -4656,3 +4656,3 @@ rb_intern(name) static ID last_id = LAST_TOKEN; - int id; + ID id; int last; -- 小松克行 / Katsuyuki Komatsu