ruby 1.8.3でのSegmentation fault回避策
tDiaryをruby 1.8.3上で動作させると、Segmentation faultが発生するという問題がいくつか報告されています。rubyコマンドのビルド方法に起因する問題らしいので、ご自分でrubyをビルドされた方は以下の方法で回避できそうです。技術的な詳細は[ruby-core:6083](英文)とその周辺を参照してください。
parse.cだけを「-DYYSTACK_USE_ALLOCA=1」付きででコンパイルしなおす
改めてmake
make install
具体的な手順です。
% cd ruby-1.8.3 % gcc -DYYSTACK_USE_ALLOCA=1 -g -O2 -I. -I. -c parse.c % make % sudo make install
この事象はtDiary 2.0.2にて主に報告されていますが、他のバージョンでは発生しないかどうかは不明です。自前でruby 1.8.3をビルドしている場合には、この対処をしておいた方がいいでしょう。
なお、この手法はおそらく対症療法なので、続報が入り次第、ここでお知らせします。
追記(2005-10-01)
技術的な背景に関して、なかださんのわかりやすい解説とパッチが出ているので、追記しておきます。これによると上記の文章は間違っていますが、訂正せずに下記を提示することにします。