Subject: Re: rebase for setup (curl)
From: "Robert Collins" <[email-masked]>
To: "Jason Tishler" <[email-masked]>, "Cygwin" <[email-masked]>
Cc: "Roth, Kevin P." <[email-masked]>
Date: Sat, 5 Jan 2002 09:42:57 +1100

----- Original Message -----
From: "Jason Tishler" <[email-masked]>

> On Fri, Jan 04, 2002 at 11:47:32AM -0500, Roth, Kevin P. wrote:
> > Negative - I get no warnings at all during the building of
> > cygcurl-2.dll.
>
> Thanks for the confirmation.

> All PostgreSQL DLLs are created with dllwrap.  If I invoke dllwrap
with

> So, the options passed to ld are the same for cygcurl-2.dll and pq.dll
> except for the slight variation of --base-file versus --image-base.
>
> I decided to table the search for the "offending" ld option(s) because
> of the following gloomy thought:
>
>     Given that rebase can break certain DLLs and that it is nearly
>     impossible to control how arbitrary packages create their DLLs,
>     can setup.exe's proposed rebase solution deal with this problem?
>     Or, is the rebase solution doomed to failure?

Time for a 2c opinion.

Looks like something is broken with dllwrap->ld interaction. Does
adding --shared fix this? Or perhaps the -Wl,--dll should be replaced
with --shared...

If we can isolate that, and release an updated dllwrap we've solved the
core fault. At that point IMO we can simply release, with a loud warning
that folk need to update and rebuild their .dlls _BECAUSE THEY ARE
CURRENTLY CORRUPT_.

Rebasing is a PE feature, if the .dll's are not surviving rebasing,
something is wrong - they probably won't survive relocation either.

Lastly, if you recall my suggestion about leaving unrebasable .dlls in
place, and rebasing around them, we can simply test a dll the first time
we see it and see if it survives. If not, we mark it's address space as
reserved and move along.

Rob

--
Unsubscribe info:      http://cygwin.com/ml/#unsubscribe-simple
Bug reporting:         http://cygwin.com/bugs.html
Documentation:         http://cygwin.com/docs.html
FAQ:                   http://cygwin.com/faq/