Oliverです。
-listにも書きましたが、-devにもsubscribeしました。

ふと用事があって、Rubyが32-bitプラットフォームで2GBを越えるファイル
を扱えない事に気がつきました。いわゆるLarge File Supportです。

で、configure.inの適当なところに

AC_SYS_LARGEFILE
AC_CHECK_SIZEOF( off_t )

を追加するとCレベルでLFSに対応しますが、io.c と file.c で
Rubyのオブジェクトからoff_tに変換するところで NUM2INTを使って
いるので、sizeof(off_t) > sizeof( int )な環境では2GB強のふぁいるんが
使えません。off_tのサイズが不定になるので、NUM2OFF_Tみたいなのが
必要になります。

そこで、相談なんですが、どういう風に解決するのが良いと思いますか? > all

- マクロでサイズを比べて NUM2INT や NUM2LONG へ #define する
  -> NUM2LONGLONG が必要になる

- numeric.c, bignum.c に num2long と似た num2off_t を作ってそれに任せる。

また、上のconfigure.inマクロだとopen, seek 等が64-bitなものに置き換えられ
てバイナリ互換性がなくなるので、off_tを使う拡張ライブラリ等は同じ
フラグでコンパイルさせる必要があります。どうしましょう。

-- 
	Oliver M. Bolzer
	oliver / gol.com

GPG (PGP) Fingerprint = 621B 52F6 2AC1 36DB 8761  018F 8786 87AD EF50 D1FF