Cygwin Python/PIL TCL/TK fork rebase solution

Ross Patterson
Wed Jan 17 02:57:00 GMT 2007

Brian Dessent <> writes:

> Ross Patterson wrote:
>> I'd still like to understand how one chooses base address and offset
>> values for rebase, seeing as I was just shooting in the dark until
>> something said "OWW!"  :)
> Well normally you don't really choose anything.  There are two ways to
> assign the base address.  And again keep in mind that for a lot of
> users, this won't matter; it tends to only comes into play in the
> presence of dynamically loaded modules.
> If you run rebaseall, it just takes a list of all known Cygwin DLLs on
> the system (based on the /etc/setup/*.lst.gz files created by setup) and
> starting at some address near the top of memory (currently 0x70000000
> but this might have been 0x68000000 in the recent past) it assigns them
> in back to back slots, in descending order.  This should fix most
> problems as it ensures that every known DLL loads to a unique spot in
> virtual memory.

Interesting, in my case, rebaseall wasn't working.  I just verified
that tk84.dll was in the /etc/setup/*.gz files and it was.  I'm
assuming that /usr/bin/tk84.dll is the same file as /bin/tk84.dll,
because /usr/bin/tk84.dll is what was in the /etc/setup/*.gz file but
/bin/tk84.dll is what I had to rebase to fix my problem.

> But it requires the user to run rebaseall, which in turn requires that
> all DLLs be not in use so they can be modified, and it requires that
> once this has been done the first that it be repeated any time a new
> DLL-containing package is installed. 

Yup, I did my rebaseall calls after a reboot and before I did anything
else every time.


Unsubscribe info:
Problem reports:

More information about the Cygwin mailing list