MSYSの謎のエラー

MSYSがたまに以下のようなエラーを吐くことがある。*1

$ sh
      0 [main] us 0 init_cheap: VirtualAlloc pointer is null, Win32 error 487
AllocationBase 0x0, BaseAddress 0x71690000, RegionSize 0x20000, State 0x10000
D:\msys\1.0\bin\sh.exe: *** Couldn't reserve space for cygwin's heap, Win32 error 0

最新版であるmsysCORE-1.0.14-1-msys-1.0.14-bin.tar.lzmaのmsys-1.0.dllを使ってみたりもしたのだがやはり駄目。

いろいろ調べた結果、http://sourceforge.net/mailarchive/message.php?msg_name=4B7F3501.7050304%40users.sourceforge.netに解決策が書かれていた。

それによると、rebase -b 0x30000000 msys-1.0.dllとすれば直るようなので、インストールしてあったhttp://www.microsoft.com/downloads/details.aspx?FamilyID=e6e1c3df-a74f-4207-8586-711ebe331cdc&displaylang=enを使い先ほどのコマンドを実行すると見事エラーが出なくなった。

*1:Vista SP2。msys-1.0.dllのバージョンは1000.11.0.0。