Mailing-List: contact cygwin-help AT cygwin DOT com; run by ezmlm List-Subscribe: List-Archive: List-Post: List-Help: , Sender: cygwin-owner AT cygwin DOT com Mail-Followup-To: cygwin AT cygwin DOT com Delivered-To: mailing list cygwin AT cygwin DOT com Date: Thu, 13 Jan 2005 12:41:33 -0800 From: Yitzchak Scott-Thoennes To: cygwin AT cygwin DOT com Subject: Re: What is rebase and why did I need to run it on a fresh re-install? Message-ID: <20050113204132.GC3880@efn.org> References: <41E5EB15 DOT 5090203 AT sneakemail DOT com> <20050113130558 DOT GA1960 AT tishler DOT net> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: User-Agent: Mutt/1.4.1i Organization: bs"d X-IsSubscribed: yes 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/