On Dec 17, 2007 4:13 AM, Marc Piulachs marc.piulachs@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.