On Dec 17, 2007 4:13 AM, Marc Piulachs <marc.piulachs(a)codexchange.net> wrote:
Validating is really a two step process, in this case
I was referring to the
first part when rbuild reads the build files and starts processing object's
properties. When it finds a property representing a base address the
information it contains must at least *look like* a base address otherwise
it may be a potential problem that has to be reported to the user. At this
point the source code is not yet build so rbuild can't perform any
additional validations. The second step is when the build has ended, now
rbuild can use (((module base address) + file size + ¿headers size?) rounded
to nearest 64K multiple) to see if any dlls are *in theory* overlapping
other's address space. IMO having to run this second process at every build
is really inefficient, a waste of resources and presents other disadvantages
I mentioned in my previous mail.
Summarizing, to auto generate and/or fully validate base address we need to
have the source code compiled, the thing is, if we want to auto generate
them at every build all the dlls will have to be re-linked to the new
address. If we generate them by hand we need a way to ensure they will be
valid under different conditions (compiler used).
Yes but are you talking about extra minutes of compile time or longer?
The amount of hours++ spent managing manually re-basing the dlls over
the years has got to justify spreading the burden to the people doing
the compiling. The extra few minutes Relinking/rebasing seems more
than justifiable compared to the maintenance of fighting with
reservation amounts across various revisions of the compiler.
--
Steven Edwards
"There is one thing stronger than all the armies in the world, and
that is an idea whose time has come." - Victor Hugo