Cygwin Python/PIL TCL/TK fork rebase solution

Christopher Faylor
Tue Jan 16 21:33:00 GMT 2007

On Tue, Jan 16, 2007 at 10:13:17AM -0800, Brian Dessent wrote:
>Robin Walker wrote:
>>Thanks for the explanations.  So, if I've understood things correctly,
>>the difficulty boils down to cloning a parent process's address space
>>layout within that of a child, which includes ensuring that DLLs appear
>>at the same base within both processes.
>Note that the "cloning" that is happening in the case of Cygwin is done
>entirely in userspace without any co-operation from the OS/kernel,
>essentially by faking it -- spawn another copy of the binary and hope
>that it takes the same layout.  Note that Cygwin can do some fixups on
>things like file handles and things that were allocated under its
>control, but it's totally at the mercy of the operating system for
>things out of its control like where DLLs get loaded.

I did add some code to cygwin many years ago which attempts to
dynamically load dlls at the right place by allocating memory up to the
place where the dll is supposed to load.  You can't do that with DLLs
loaded by the OS, though.


Unsubscribe info:
Problem reports:

More information about the Cygwin mailing list