Você precisa executar o comando rebaseall
do pacote rebase
para corrigir o problema.
- Instale o pacote
rebase
usando o utilitário Cygwinsetup.exe
- Feche tudo que estiver em execução e use o
cygwin1.dll
- Abra um shell do Cygwin
- Digite
rebaseall
no prompt
O re-armazenamento geralmente é necessário apenas quando pacotes instalados são instalados que modificam bibliotecas que são carregadas dinamicamente. Eu admito o mau hábito de sempre executar rebaseall
após instalar ou atualizar pacotes em uma instalação do Cygwin, em vez de esperar que o erro que você atingiu seja exibido.
Quanto a por que você recebeu esse erro e como o rebasing resolve o problema, este post tem isto a dizer sobre isso:
You have it backwards. Forking doesn't break the relocation. Relocation breaks forking. cygwin1.dll needs to have a very special memory layout to implement the fork semantics in Win32. If this memory layout is disrupted, fork breaks. Relocating cygwin1.dll disrupts the required memory layout. 'rebaseall' does its best to locate all Cygwin DLLs that it knows of into a layout that avoids collisions. This maintains the required memory layout so fork can do its job.