From: "Günter Knauf" <[EMAIL PROTECTED]>
Sent: Wednesday, October 03, 2001 9:32 AM


> Hi Greg, Bill,
> thanks for the detailed information.
> Now I'm asking me why I did not ask you earlier because I have ~20 modules
> which then better be recompiled...
> I assume that this also applies to Cygwin and perhaps OS2, or? If so then
> there's a common interest to have a BaseAddress2.ref for 3rd party modules;
> can we perhaps place it on a Apache server so that everyone has access to?
> I've already started with this and will now put in all modules I got compiled
> for Win32 and post it here if you agree...

My only problem is that I don't want to even try maintaining such a beast.
IMHO, it's better if they express their /BASE:"0xnnnn0000" directly.  Of course
I don't mind if an 'installer' were to tack their base entry into BaseAddr.ref
directly when merging their sources into the build tree (not such a common act
on Win32, since we have so few 'compilers'.)

One problem is the size argument.  If you build in full debugging mode, your
binaries are much larger.  I've taken that into account for the current list.
Sometimes modules grow, and the entire table must be rearranged.  I don't much
like trying that for umpteen modules.

Look at the rebase.exe utility (provided in the PlatformSDK and with the MSVC
products, amoungst other places) which will let you reorder .dll's wrt each
other's load addresses.  You would specify any 'predictable' modules (those
with well established load addresses, such as libraries or the Apache modules
we hand-ordered) by the -N opt, then list out the other 'undefined' modules
with the -O opt.  Use -d to order these modules top-down, and -b 0x6FFF0000
or some such as the starting point.

cygwin might benefit from rebasing the entire list at once.

Bill



Reply via email to