Ruby が Android と Cygwin 向けにクロスコンパイルできなくなってるな。fsid_t ねぇ。 http://t.co/BrbBA6sAKv http://t.co/wFRHZn3iQC
2014-04-23 11:14:32bionic には最近 fsid_t が入ったようだな。中身は struct だが。 https://t.co/xBirjCHQDk
2014-04-23 11:37:58@n0kada でも struct でありかつ fsid_t が定義されていない (されていなかった) のは Android だけじゃない? だからまだコンパイルに失敗する。
2014-04-23 12:35:02@n0kada boron に入れてある Android NDK だと __kernel_fsid_t になってるなぁ。union とか面倒なことはせずに rb_integer_unpack に直接食わせてしまうのがいいような気がする。
2014-04-23 12:40:29@n0kada statvfs の f_fsid は符号なしなので、2COMP はいらないんじゃないの。あと、glibc をみてみると big endian 環境では native byte order ではないような。 https://t.co/984qqjlTJp
2014-04-23 13:43:33@tanaka_akr staffsのほうはint val[2]とかint32_t val[2]とか。そもそもこの値ってkernel外で意味ある?
2014-04-23 13:48:12@n0kada @tanaka_akr 2つのディレクトリが同じファイルシステムに載っているかどうかはわかる。値をrubyから一定に読み込まればエンディアン間違っててもあんまり問題ではありませんね
2014-04-23 13:49:55@nalsh @n0kada @tanaka_akr わたしも同意見。Rubyスクリプトに数値を露出させる意味はあんまりなくて、同値判定でファイルシステムが異なるかどうかが分かるのが重要
2014-04-23 13:52:20@n0kada 提供するなら statvfs の f_fsid の値にするのがまともだと思う。提供しないというのもまともだと思う。Linux の statfs(2) には f_fsid についてかなり怪しいことが書いてある。 http://t.co/EB4dU3JLfA
2014-04-23 13:53:05@nalsh @n0kada @tanaka_akr ただ、なんかのworkaroundでtmpfsだけ特別扱いとかはありえるので、値がCと揃っているとちょっとだけプログラミングが楽になる・・・かなあ?(ちょっと自信ない)
2014-04-23 13:53:26@kosaki55tea @n0kada @tanaka_akr それはファイルシステムの種類を示すf_typeの方では。fsid_tはそれぞれのファイスシステムに振られるID
2014-04-23 13:54:28@n0kada さらに GNU/Hurd では (statfs の) f_fsid も整数らしい。 https://t.co/wb5fGqvJeW
2014-04-23 13:58:46