This is the mail archive of the
cygwin
mailing list for the Cygwin project.
Re: Cygwin Python/PIL TCL/TK fork rebase solution
Brian Dessent <brian@dessent.net> 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.
Ross
--
Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple
Problem reports: http://cygwin.com/problems.html
Documentation: http://cygwin.com/docs.html
FAQ: http://cygwin.com/faq/