今、仕事が無いので手習いでサーバなど組んで遊んでいるのだけれど、
gccで正常終了するソースがclangだとcore吐いて落ちる状況に遭遇。
環境を変えるのはちょっと嫌な感じなので、
とりあえず仮想環境でclang3.2にして状況が変わるか確認することに。
が、待てど暮らせどportsのmakeが完了しない。
画面の表示は
のまま止まっており、cc1plusのCPU使用率も1%を切っているような状況。
当初は、make.confのCPUTYPE設定が悪さをしているのかと思ったのだけれど、
make.confの設定を弄っても一向に状況が改善しない。
OSに入ってる方のclang3.1でmakeできないかと思ったけれど、
portsのMakefileの記述がGCCを使うようになっているっぽいので、
無駄な試みに終わる。
小一時間悩んだ挙句
もしかしたら、メモリ確保できなくて空くのをずっと待ってんじゃなかろうか?
と思って、仮想環境に割り当てるメモリを384MBから768MBに変えたら……
どうやらビンゴっぽい。
無事にmakeが通った。
どうせsshでしか接続しないのでメモリケチったのが不味かった。
で、長い長いmakeが完了した後、
makeの為だけに必要だったPythonのパッケージを削除して準備完了。
さっそくclang3.2でも問題が再現するか確認する。
お、core吐かなくなった。
やっぱ、自分のソースが間違ってた訳ではなかったんだな。
とひと安心。
けど、あんまりほめられたコードでは無いのかもしれない。
※追記
後日clang3.3がリリースされ、メモリ768MBではビルドがまた固まるようになった。
1.5GBでも固まるので、恐らく3~4GB位ないとビルドは通らないと思われる。
コメントを残す