Bloat in Executable

Temtaime temtaime at gmail.com
Fri Nov 17 18:53:57 UTC 2017


On Thursday, 16 November 2017 at 03:58:38 UTC, Adam D. Ruppe 
wrote:
> On Thursday, 16 November 2017 at 03:32:26 UTC, codephantom 
> wrote:
>> 23k executable if 32bit (i.e. -m32 )
>
> It is the statically linked C library. Note that if you remove 
> the call to printf, the size is slashed in half.
>
> Windows traditionally didn't do a system-wide C lib, but rather 
> the various compiler vendors would do their own. To keep this 
> from being a big pain for the end user, static linking can be 
> employed as it apparently is with Digital Mars.
>
>> 112k executable if 64bit (i.e. -m64 )
>
> I'm not 100% sure this is the same, but I suspect it probably 
> is.
>
>> .. on freebsd ..
>> 5.6k executable if 32bit (i.e. -m32 )
>
> If you ldd that, you'll see it dynamically links the C library. 
> The downside of this is there's less binary compatibility 
> across major versions; you are liable to need to recompile from 
> source to deal with different libc versions on the system, 
> whereas the Windows builds are more likely to just work.

There is system-wide C library. It is named msvc.dll.
TCC uses it producing very small executables.


More information about the Digitalmars-d mailing list