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