X-Spam-Check-By: sourceware.org To: cygwin AT cygwin DOT com From: Ross Patterson Subject: Re: Cygwin Python/PIL TCL/TK fork rebase solution Date: Tue, 16 Jan 2007 10:09:50 -0800 Lines: 31 Message-ID: <87zm8ihmhd.fsf@superfluity.lefae.org> References: <87ejpvluvj DOT fsf AT superfluity DOT lefae DOT org> <3D1F5241A4BA56B7EBA1D30B AT qjunbur DOT quns DOT cam DOT ac DOT uk> <45ACC59F DOT 397A6589 AT dessent DOT net> <45ACCBEF DOT 49170261 AT dessent DOT net> <20070116175838 DOT GB14405 AT trixie DOT casa DOT cgf DOT cx> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii User-Agent: Gnus/5.110006 (No Gnus v0.6) Emacs/22.0.92 (gnu/linux) X-IsSubscribed: yes Mailing-List: contact cygwin-help AT cygwin DOT com; run by ezmlm List-Id: 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 Christopher Faylor writes: > On Tue, Jan 16, 2007 at 05:50:06PM +0000, Robin Walker wrote: >>For this to be the problem it appears to be, I'm guessing that there must >>be some shortcoming in the Windows APIs in this area when compared with >>facilities available within other Posix-compliant OSs. > > It isn't a shortcoming at all. Windows is perfectly within its rights > to put DLLs whereever it wants. Windows doesn't implement fork() so it > doesn't have to worry about creating a new process whose addresss space > is a carbon copy of another process. > >>How does Linux deal with the same issues of having libraries (or whatever >>are logically equivalent to DLLs) potentially linked at different bases in >>the two address spaces? > > fork() is part of the OS in Linux and the fork() function is absolutely > intrinsic and necessary for anything on Linux or UNIX to work correctly. > It doesn't have to deal with anything like this since a fork is in the > low level of the OS, not in a library running in an application. This has been an illuminating discussion and has given a lot more detail to what I already understood about the rebase/fork issue. 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!" :) Anyone? 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/