My D cross-compiler for wince generates huge binary

David Friedman dvdfrdmn at users.ess-eff.net
Sat Aug 16 04:54:05 PDT 2008


Vincent Richomme wrote:
> David Friedman a écrit :
>> Vincent Richomme wrote:
>>> Hi,
>>>
>>> When trying o build a simple D program with a wince cross compiler 
>>> the generated binary is about 1 MB for a simple MessageBox.
>>>
>>>
>>> $> arm-mingw32ce-gdc test.d -O2 -o testD.exe
>>> $>ls -la
>>> -rwxr-xr-x 1 Vincent Aucun 1231211 Aug 15 16:16 testD.exe
>>>
>>> I don't understand why the binary is so big ? Is it normal ?
>>> Maybe it's because of D runtime and in this case how can I build it 
>>> as a shared lib ?
>>>
>>
>> D executables tend to be large because of the garbage collector and 
>> the fact that the library modules generate monolith objects.
>>
>> You can mitigate the latter problem by building Phobos (and your apps) 
>> with -ffunction-sections and -fdata-sections.  Then use 
>> -Wl,-gc-sections in the link command.
>>
>> Also: Have you tried stripping the executable?
>>
>> David
> 
> I have tried to strip it and now I get 242 kB but it's far too big for 
> emebedded world.
> I would prefer to split things, I mean would it be possible to have on 
> one side a shared lib emebedding garbage collector and on the other side 
> user applications ?

It should be possible to build Phobos as a dll.


More information about the D.gnu mailing list