<div dir="ltr">The clang executable size mystery deepens:<div><br></div><div>The sizes are indeed waaaay big:</div><div><br></div><blockquote style="margin:0px 0px 0px 40px;border:none;padding:0px"><div><div><div><font face="courier new, monospace">7.4M test-files-clang/test*</font></div>
</div></div><div><div><div><font face="courier new, monospace">4.5M test-files-clang/test-stripped*</font></div></div></div><div><div><div><font face="courier new, monospace">1.4M test-files-gcc/test*</font></div></div></div>
<div><div><div><font face="courier new, monospace">1.1M test-files-gcc/test-stripped*</font></div></div></div></blockquote><div><div><div><br></div></div></div><div>Looking at the load info from the stripped versions, it is all in the main text segment:</div>
<div><br></div><blockquote style="margin:0px 0px 0px 40px;border:none;padding:0px"><div><div><font face="courier new, monospace"> test-files-clang/load test-files-gcc/load</font></div></div><div>
<div><font face="courier new, monospace">__TEXT.__text : 3,554,134 833,502</font></div></div><div><div><font face="courier new, monospace">__TEXT.__stubs : 876 672</font></div>
</div><div><div><font face="courier new, monospace">__TEXT.__stub_helper : 1,476 1,136</font></div></div><div><div><font face="courier new, monospace">__TEXT.__const : 59,040 32,104</font></div>
</div><div><div><font face="courier new, monospace">__TEXT.__cstring : 24,156 24,900</font></div></div><div><div><font face="courier new, monospace">__TEXT.__dof_HaskellEv : 4,774 4,774</font></div>
</div><div><div><font face="courier new, monospace">__TEXT.__eh_frame : 22,976 46,664</font></div></div><div><div><font face="courier new, monospace">__DATA.__got : 1,264 880</font></div>
</div><div><div><font face="courier new, monospace">__DATA.__nl_symbol_ptr : 16 16</font></div></div><div><div><font face="courier new, monospace">__DATA.__la_symbol_ptr : 1,168 896</font></div>
</div><div><div><font face="courier new, monospace">__DATA.__mod_init_func : 8 8</font></div></div><div><div><font face="courier new, monospace">__DATA.__const : 130,048 79,744</font></div>
</div><div><div><font face="courier new, monospace">__DATA.__data : 231,848 22,904</font></div></div><div><div><font face="courier new, monospace">__DATA.__common : 45,924 46,092</font></div>
</div><div><div><font face="courier new, monospace">__DATA.__bss : 856 840</font></div></div><div><div><font face="courier new, monospace">TOTAL SIZE : 4,078,564 1,095,132</font></div>
</div></blockquote><div><br></div><div>But, the compiled sizes are identical:</div><div><br></div><blockquote style="margin:0px 0px 0px 40px;border:none;padding:0px"><div><div><div><font face="courier new, monospace">1.9K test-files-clang/Main.o</font></div>
</div></div><div><div><div><font face="courier new, monospace">1.9K test-files-gcc/Main.o</font></div></div></div></blockquote><div><div><div><br></div></div></div><div>And, after dumping the link command, and looking up all the libs linked in (identical set in both cases), the clang libs are actually <i>smaller:</i></div>
<div><br></div><blockquote style="margin:0px 0px 0px 40px;border:none;padding:0px"><div><div><div><font face="courier new, monospace">13,004,272 ...clang.../lib/ghc-7.8.3/base-4.7.0.1/libHSbase-4.7.0.1.a</font></div><div>
<font face="courier new, monospace"> 792,352 ...clang.../lib/ghc-7.8.3/ghc-prim-0.3.1.0/libHSghc-prim-0.3.1.0.a</font></div><div><font face="courier new, monospace"> 1,010,824 ...clang.../lib/ghc-7.8.3/integer-gmp-0.5.1.0/libHSinteger-gmp-0.5.1.0.a</font></div>
<div><font face="courier new, monospace"> 55,816 ...clang.../lib/ghc-7.8.3/rts-1.0/libCffi.a</font></div><div><font face="courier new, monospace"> 565,112 ...clang.../lib/ghc-7.8.3/rts-1.0/libHSrts.a</font></div><div>
<font face="courier new, monospace"><br></font></div><div><font face="courier new, monospace">24,378,416 ...gcc.../lib/ghc-7.8.3/base-4.7.0.1/libHSbase-4.7.0.1.a</font></div><div><font face="courier new, monospace"> 1,253,176 ...gcc.../lib/ghc-7.8.3/ghc-prim-0.3.1.0/libHSghc-prim-0.3.1.0.a</font></div>
<div><font face="courier new, monospace"> 1,014,280 ...gcc.../lib/ghc-7.8.3/integer-gmp-0.5.1.0/libHSinteger-gmp-0.5.1.0.a</font></div><div><font face="courier new, monospace"> 57,984 ...gcc.../lib/ghc-7.8.3/rts-1.0/libCffi.a</font></div>
<div><font face="courier new, monospace"> 556,432 ...gcc.../lib/ghc-7.8.3/rts-1.0/libHSrts.a</font></div></div></div><div><br></div></blockquote><div>So now I'm totally mystified! What is in that 3M of extra text segment?!?!?</div>
<div><br></div><div>- Mark</div><div><br></div></div>