cygwinで unable to remap *.dll
0 [main] zsh 4192 C:\cygwin\bin\zsh.exe: *** fatal error - unable to remap \\?\C:\cygwin\lib\zsh\4.3.11\zsh\zle.dll to same address as parent: 0x4A0000 != 0x6C4C0000
というようなエラーが出たり出なかったり出まくったり。
なんだろう?と思って検索してみたところ、
Hundred Threads: Cygwin: Unable to remap というページを発見、まさにそれでした。
上記ページに書いてある通り、以下の手順に従ってみると何事も無く動くように。
- cygwinセットアップユーティリティを起動して、rebaseパッケージがインストールされているか確認(手元の環境では意識せずにインストール済みだった)
- cygwinのプロセスをすべて終了させる (念のためタスクマネージャーで確認すること)
- コマンドプロンプトを起動して、cygwin\bin\フォルダへ移動し、.\ash.exe でシェルを起動
- ./rebaseall を実行して数秒待つ
その後、「cygwin rebaseall」という検索をしてみたところいろいろなパターンで同じことが起きるそうで、どれもこれも同様の手順で解決するようです。
これ自体はzshそのものとかの問題では無く、cygwinのforkの問題。ということのようです。
XS系のperlモジュールをインストールしたときも、dllが絡んだりすると同じことが起きるそうなので、そのときも慌てずにrebaseallするのが良いのだとか。