delorie.com/archives/browse.cgi   search  
Mail Archives: cygwin-apps/2002/01/03/08:14:46

Mailing-List: contact cygwin-apps-help AT cygwin DOT com; run by ezmlm
Sender: cygwin-apps-owner AT cygwin DOT com
List-Subscribe: <mailto:cygwin-apps-subscribe AT cygwin DOT com>
List-Archive: <http://sources.redhat.com/ml/cygwin-apps/>
List-Post: <mailto:cygwin-apps AT cygwin DOT com>
List-Help: <mailto:cygwin-apps-help AT cygwin DOT com>, <http://sources.redhat.com/lists.html#faqs>
Delivered-To: mailing list cygwin-apps AT cygwin DOT com
Date: Thu, 3 Jan 2002 08:18:38 -0500
From: Jason Tishler <jason AT tishler DOT net>
To: Robert Collins <robert DOT collins AT itdomain DOT com DOT au>
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 <robert DOT collins AT itdomain DOT com DOT au>,
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
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" <jason AT tishler DOT net>
> > 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

- Raw text -


  webmaster     delorie software   privacy  
  Copyright © 2019   by DJ Delorie     Updated Jul 2019