This is the mail archive of the cygwin-apps@cygwin.com mailing list for the Cygwin project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: rebase problem for cygcurl-2.dll still existing?!


Kevin,

On Tue, Jul 16, 2002 at 12:18:36PM -0400, Roth, Kevin P. wrote:
> On one hand, I have CGF asking for stripping of all EXE/DLLs, to save
> on disk space, and also download speed for our dial-up friends (I
> assume).

I stated that my preference was not to strip so that rebasing will work.
If you strip, then my latest rebase will just skip cygcurl-2.dll but it
will *not* corrupt it.

> On the other hand I have Stipe noticing that his PHP package (if
> memory serves) can't successfully rebase my cygcurl-2 dll, and
> therefore doesn't work.

See above.

> (Though I thought rebasing was not necessarily required, since windows
> normally relocates DLLs in memory when a collision occurs.)

See below.

> I'll be happy to repackage without stripping the DLL, if that's OK
> with CGF-and-friends. Or if someone suggests another workable approach
> I'll gladly oblige... If I hear nothing by tomorrow, I'll go ahead and
> submit a non-stripped package until such time as this issue is
> resolved.

I will defer to Chris and/or the consensus regarding this issue.

> (BTW: for any given version of cygcurl-2.dll, does rebasing need to
> happen just once per target machine [e.g. when cygcurl-2.dll is
> installed], or also every time something that depends on it [such as
> PHP's curl wrapper] gets installed?)

Actually every time a new DLL is installed on a system, it should be
rebased so as not to collide with the other DLLs.  This is why I need to
integrate my stand-alone rebase into Cygwin's setup.exe.

> (BTW2: can anyone explain in layman's terms why it is that in-memory
> relocation upon collision doesn't happen in this case?

It does.  This is not the issue, Cygwin's fork() implementation is.

> Is that a deficiency of cygwin as a whole, or just related to the way
> my DLL was built?)

Cygwin's fork() attempts to load DLLs in the child in the same location
as in the parent.  If it fails, then the child aborts.

Jason


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]