Archive for April, 2012

solution for cygwin unable to remap problem

April 6, 2012

I use cygwin a lot and if you (like me) have had huge problems like:

[main] python 5436 C:\cygwin\bin\python.exe: *** fatal error – unable to remap C:\cygwin\bin\cygintl-8.dll to same address as parent: 0x430000 != 0x6EBB0000

[main] python 5436 C:\cygwin\bin\python.exe: *** fatal error – unable to remap C:\cygwin\bin\cygintl-8.dll to same address as parent: 0x430000 != 0x6EBB0000

[main] python 964 fork: child 5436 – died waiting for dll loading, errno 11
[main] python 964 fork: child 5436 – died waiting for dll loading, errno 11

then most people will tell you to just run ash and then do a  rebaseall, but this doesn’t work for me!

What does work for me  is the following: http://code.google.com/p/chromium/wiki/CygwinDllRemappingFailure

In case the  link above is broken here are the steps:

  • Download the ListDLLs executable from sysinternals (http://technet.microsoft.com/en-us/sysinternals/bb896656.aspx)
  • Run it as administrator while some cygwin commands are running.
  • Scan the output for the cygwin process (identifiable by the command) and for DLLs in that process that do not look like cygwin DLLs (like an AV). Note the location of those libraries (there will usually only be the one). Pick an address space location lower than its starting address.
  • Quit all cygwin processes.
  • Run a windows command shell as administrator
  • cd in \cygwin\bin
  • Run “ash /usr/bin/rebaseall -b <base address>” (This command can also take a “-v” flag if you want to see the DLL layout.)

Basically what was happening to me was a DLL (from Nvidia in my case) was occupying the same address space (0x6EBB0000) that cygintl-8.dll was trying to remap to.  So rebasing to different address space that did not conflict fixed the problem.