Lib change leads to larger executables
John Reimer
terminal.node at gmail.com
Thu Feb 22 00:46:17 PST 2007
On Wed, 21 Feb 2007 15:56:31 +0000, John Reimer wrote:
> On Wed, 21 Feb 2007 01:47:53 -0800, kris wrote:
>
>> kris wrote:
>>> Walter Bright wrote:
>>>
>>>> kris wrote:
>>>>
>>>>> Walter Bright wrote:
>>>>>
>>>>>> For a quick & dirty test, try reversing the order the object files
>>>>>> are presented to lib.
>>>>>
>>>>>
>>>>>
>>>>> there's a couple of hundred :-D
>>>>
>>>>
>>>>
>>>> Do the ones that were giving the undefined reference before the
>>>> changes to lib.
>>>
>>>
>>> The lib itself is actually built via a single D module, which imports
>>> all others. This is then given to Build to construct the library. Thus I
>>> don't have direct control over the ordering. Having said that, it
>>> appears Build does something different when the modules are reordered;
>>> Likely changing the order in which modules are presented to the lib.
>>>
>>> By moving things around, I see a change in size on the target executable
>>> between -4kb to +5kb
>>>
>>
>> I've been messing with the response file handed to the librarian (via
>> lib @foo); moving modules around here and there, reordering big chunks
>> etc. Have yet to see a notable change in the resulting exe after
>> relinking against each lib version.
>
>
> Is build really a reliable means of testing this? I mean, it's produced
> unusual differences in binary size in the past (granted not of that
> magnitude). Of course, this is a different case too, in which a library is
> being created.
>
> Just out of curiousity, does rebuild do the same thing?
>
> -JJR
I obviously misunderstood the whole issue here. After reading the
responses, I begin to see the magnitude of the problem described.
-JJR
More information about the Digitalmars-d
mailing list