OutOfMemory 対策
PizzaFactoryに含まれるGNUツールチェインは,CruiseControlでビルドしている.
具体的には,config.xml で,ant を呼び,antの中でCVS update → configure → make → make install を行う.
GCCは,3.4.6ベースで変更は余り無いのだけれど,binutils/gdb/newlib は,本家のCVS mainlineを追いかけているので,毎日ビルドがかかる.
最近,いくつかのターゲット用のビルドにおいて,OutOfMemoryによりantが落ちるようになった.
ターゲットを見ると,sh-elf と m68k-elf.確かに,この2つは,他のターゲットに比べてバリエーションが多く,ビルド時間も長く,ログも長い.
そんなわけで,対策を行う.
今回得た結論
CruiseControlで,ログメッセージが大量に出るantタスクがある場合,config.xml には useLogger="true"を噛ませろ
環境依存かもしれないけれど,その辺は自己責任でヨロシク.
以下は,挫折と安堵の歴史.
JDK1.5.0_11 へアップグレード
使っていたJDKバージョンは1.5.0_6.リリースノートを見ると,OutOfMemoryに関して修正があったとの記述有り.
これか!? と思ってアップグレードするも,効果無し.
<ant> <vmargs value="-Xmx=1024m"/>
などするも,効果無し.