Subject: Re: What is rebase and why did I need to run it on a fresh re-install?
From: Yitzchak Scott-Thoennes <[email-masked]>
To: [email-masked]
Date: Thu, 13 Jan 2005 12:41:33 -0800

On Thu, Jan 13, 2005 at 02:43:22PM -0500, Francis Litterio wrote:
> Jason Tishler wrote:
> 
> > Peter,
> >
> > On Thu, Jan 13, 2005 at 04:29:25AM +0100, Peter Valdemar M?rch wrote:
> >> * What does rebase do?
> >
> > As its name implies, rebase rebases (i.e., changes) the base address of
> > DLLs.  See the following for more details:
> >
> > http://msdn.microsoft.com/library/default.asp?url=/library/en-us/tools/tools/rebase.asp
> 
> Why on Earth are virtual addresses hardcoded into DLLs?  Do UNIX systems
> do this for shared libraries?  I've never heard of such a thing under
> UNIX.
> 
> Shouldn't the NT kernel's page tables allow DLL text and data sections
> to be loaded at any virtual address without requiring a copy of the DLL
> to be made (i.e., rebasing)?

AIUI this is true, but for cygwin's fork() to work, the child has to
have the DLL's loaded into the same place.  So needing the hardcoding
is a consequence of the NT kernel not directly supporting fork.

--
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/