Mailing-List: contact cygwin-developers-help AT sourceware DOT cygnus DOT com; run by ezmlm List-Subscribe: List-Archive: List-Post: List-Help: , Sender: cygwin-developers-owner AT sources DOT redhat DOT com Delivered-To: mailing list cygwin-developers AT sources DOT redhat DOT com Message-ID: <034101c0f21b$8f708a50$0200a8c0@lifelesswks> From: "Robert Collins" To: References: <001f01c0f0e6$72b8ec80$0200a8c0 AT lifelesswks> <20010610004015 DOT D29231 AT redhat DOT com> <23114413578 DOT 20010610185633 AT logos-m DOT ru> <20010610120846 DOT B5292 AT redhat DOT com> <027801c0f210$d1e7c5c0$0200a8c0 AT lifelesswks> <20010610211823 DOT A9379 AT redhat DOT com> <02ee01c0f214$e27d63f0$0200a8c0 AT lifelesswks> <20010610214736 DOT B9379 AT redhat DOT com> <032101c0f219$b7d04dc0$0200a8c0 AT lifelesswks> <20010610220532 DOT A9806 AT redhat DOT com> Subject: Re: dll base address Date: Mon, 11 Jun 2001 12:09:34 +1000 MIME-Version: 1.0 Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: 7bit X-Priority: 3 X-MSMail-Priority: Normal X-Mailer: Microsoft Outlook Express 5.50.4133.2400 X-MimeOLE: Produced By Microsoft MimeOLE V5.50.4133.2400 X-OriginalArrivalTime: 11 Jun 2001 01:59:28.0685 (UTC) FILETIME=[25FE05D0:01C0F21A] ----- Original Message ----- From: "Christopher Faylor" To: Sent: Monday, June 11, 2001 12:05 PM Subject: Re: dll base address > On Mon, Jun 11, 2001 at 11:56:22AM +1000, Robert Collins wrote: > >----- Original Message ----- > >From: "Christopher Faylor" > >To: > >Sent: Monday, June 11, 2001 11:47 AM > >Subject: Re: dll base address > > > > > > > >>But, marking the DLL as unrelocatable will mean that the DLL will never > >>be able to be relocated even when it will work perfectly well. > > > >The only time that it will work well is when _every_ program run within > >that session (following a chain of fork() and spawn() calls) has _no_ > >conflicting dlls in the same address space. > > Right, and, I use software on a regular basis which injects a DLL into > every executable that runs on the system. I don't know where that DLL > loads now. If it happens to load in the 0x61* range, I'm potentially > out of luck. Sorry, I was unclear. I meant that the existing behaviour of cygwin is such that it will only work when _every_ program .... address space. I.e. that you are _already_ out of luck with your injecting .dll tool because cygwin will be at 0x61*, or you would be observing the problem with differing map address's cross process. > >In a nutshell we have three options: > >1) Make cygwin1.dll handle different base address cross-process > >properly. > >2) Mark cygwin1.dll non-relocatable until time and techniques to > >implement 1) are found. > >3) Ignore the issue until 1) occurs. > > > >I'm very happy to hear of other ways around the issue... but I think a > >quite, easy and not dirty fix is entirely appropriate. After all the NT > >Kernel address space is not relocatable, and we are performing similar > >tasks :]. > > Of course, I'm not aware of any way to do this in ld, so this may all > be a moot discussion anyway. I'll go off and research that, if you are considering allowing it? Rob > cgf >