Within cygwin, almost each unix command I type prints a warning message, takes time and eventually gives a correct result:

-bash-4.1$ ls
0 [main] bash 7468 child_info_fork::abort: cygreadline7.dll: Loaded to different address:
parent(0x320000) != child(0x3B0000)
-bash: fork: retry: Resource temporarily unavailable

What is the meaning of this warning?


Windows loads each dynamic library at the same address in every process. This interacts badly with Cygwin's emulation of fork when there are different versions of a DLL in the parent and child process (i.e. when you upgraded a DLL between the time the parent started and the time the child started). Restart all your Cygwin processes after upgrading a library.

  • I had a similar failure with cmake "cygkrb5-3.dll loaded to different address" (then died). For some reason restarting cygwin wasn't enough I had to reinstall cygwin and the problem went away. Odd. – rogerdpack Sep 2 '15 at 21:12

The Cygwin FAQ mentions "resource temporarily unavailable" as one of the error messages that can occur because of the way Windows handles process creation. The potential solutions it lists are:

  • Restart the process
  • Remove all applications known to conflict with Cygwin
  • Follow the instructions in /usr/share/doc/rebase/README to run rebaseall

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.