gcc-4.2.1-dw2-2でビルドしたbjamがクラッシュする問題

http://kikyou.info/diary/?200802#i28_1
ちょっと気になったので試してみました。
bjamにデバッグ情報を付けるため、

set Path=C:\gcc-4.2.1-dw2-2\bin;%Path%
set BOOST_JAM_TOOLSET_ROOT=C:\gcc-4.2.1-dw2-2\
build.bat gcc --symbols

でビルドしています。
確かに100%クラッシュするんですが、gdbから起動するとboost-build.jamが見つからないでエラーになるもののクラッシュしません。(--debugでビルドできるデバッグ版は動きます)
仕方がないので、Visual StudioJITデバッガで捕捉して、コールスタックの各アドレスをaddr2lineで調べました。

  • hash.c:172
  • filesys.c:48
  • filent.c:188
  • timestamp.c:143

引数も覗いたところ、file_dirscan()の呼び出しまでは問題なくて、_findfirst/_findnextの結果作成したリストが壊れているようです。
ここから先はちゃんと追えてないんですが、単にgcc4.2.1がバグってるだけで、sjlj版でも起こるんじゃないかと思います。(要確認確認済み)