D.gnu - My D cross-compiler for wince generates huge binary
- Vincent Richomme (9/9) Aug 15 2008 Hi,
- Vincent Richomme (5/19) Aug 15 2008 By the way does the D compiler is related to C++ compiler in some ways
- David Friedman (8/22) Aug 15 2008 D executables tend to be large because of the garbage collector and the
- Vincent Richomme (6/32) Aug 16 2008 I have tried to strip it and now I get 242 kB but it's far too big for
- David Friedman (2/35) Aug 16 2008 It should be possible to build Phobos as a dll.
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 ?
Aug 15 2008
Vincent Richomme a écrit :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 ?By the way does the D compiler is related to C++ compiler in some ways because on wince/mingw libstdc++ is statically linked so I wonder if it couln't be an explanation. But I don't think it can explain everything ...
Aug 15 2008
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
Aug 15 2008
David Friedman a écrit :Vincent Richomme wrote: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 ?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
Aug 16 2008
Vincent Richomme wrote:David Friedman a écrit :It should be possible to build Phobos as a dll.Vincent Richomme wrote: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 ?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
Aug 16 2008