パラレルmakeがハングする理由を調べてみる…再起動-2歩下がって3歩進む-

どうもMSYSのバグが濃厚になってきたので、カテゴリにMSYSを入れてみた…
まずはハングするサンプルプログラムを作ろうと思ったが、中々ハングしないので、いったん諦めて、Makefileの軽量化に取り組んでみた。
最大ジョブ数を2(-j2)にして、同時に動作するmakeツリーを3パス作ったら、それだけでmakeがハングした。同じMakefileを-j1(パラレルmake無効)で実行すると、問題なく動作する。どんだけしょぼいんだコイツわorz。で、ログをチェックすると、やはりCHLDシグナルを捕捉できておらず、readで止まっている。
MSYS DLLのログ量を調節しながら何が起きているかを調べてみるが、makeがごちょごちょ色々な事をしているので、ログが複雑になり手が付けられない。と言うか、MSYS DLLって奇妙なコードが多くて走るコードを追っかけきれん(゚Д゚;)
かろうじて読み取れたのは…

続きを読む