<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>