Mailing-List: contact cygwin-apps-help AT cygwin DOT com; run by ezmlm Sender: cygwin-apps-owner AT cygwin DOT com List-Subscribe: List-Archive: List-Post: List-Help: , Delivered-To: mailing list cygwin-apps AT cygwin DOT com Date: Thu, 3 Jan 2002 08:18:38 -0500 From: Jason Tishler To: Robert Collins Cc: cygwin-apps AT sources DOT redhat DOT com Subject: Re: rebase for setup. Message-ID: <20020103131837.GA1940@dothill.com> Mail-Followup-To: Robert Collins , cygwin-apps AT sources DOT redhat DOT com References: <008101c1819b$021aa860$a300a8c0 AT nhv> <20011212085744 DOT A2400 AT dothill DOT com> <20011218211235 DOT GA2476 AT dothill DOT com> <018101c1880b$affd10a0$0200a8c0 AT lifelesswks> <20011219032813 DOT GG10253 AT redhat DOT com> <20011221125117 DOT GC1792 AT dothill DOT com> <027401c18bae$25318fe0$0200a8c0 AT lifelesswks> <20011227174434 DOT GC2204 AT dothill DOT com> <045a01c18f34$10a73730$0200a8c0 AT lifelesswks> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <045a01c18f34$10a73730$0200a8c0@lifelesswks> User-Agent: Mutt/1.3.24i Rob, On Fri, Dec 28, 2001 at 11:10:31AM +1100, Robert Collins wrote: > ----- Original Message ----- > From: "Jason Tishler" > > If so, then I don't fully grok it -- please try again. > > Specifically, > > I don't understand what is install (or how it differs from setup). > > install = /bin/install - I'm suggesting that this gets updated as > well, > so that make install in python works without needing to run rebase. Ah, I get it now -- I didn't even think of the make install case. Unfortunately, it does not actually handle pathological (or should I say incestuous) programs such as Python that use freshly built components (i.e., DLLs) during the build process itself. Does it make any sense to change Cygwin's ld to rebase on the fly instead? > > Also, the rebase algorithm seems more complicated than mine (and > > MS's) > > simplicity one. So, I must be missing something -- please help me > > understand the issues. > > Well as I understand yours it's "rebase EVERYTHING on the system" "x > bytes apart". Correct, but... > Mine is "rebase everything that appears linked" "x bytes apart". The > goal being to avoid rebasing 1000 .dll and .exe's when you run setup > and > install fortune.exe :}. Do we really need to rebase the .exe's? If not, then the I only count 113 Cygwin DLLs in my system. Besides rebasing seems to be quick. > That requires persistent storage of the used > address range, thus storing the info in /etc/setup. I understood this part, given that your rebase algorithm is used -- I just wasn't sure why the simple one wouldn't work. > loadable modules probably need some thought in this context though. By "loadable," do you mean dlopen-ed DLLs? If so, then definitely -- Python has a bunch of them. A couple of more issues to deal with: 1. Determine why cygcurl-2.dll and possibly other DLLs do not tolerate rebasing. 2. Make sure whatever algorithm that we use can handle non-relocatable DLLs without getting confused or wasting address space. (The current version of rebase would waste the offset value (e.g., 0x10000) of address space on cygtclpip80.dll). Jason