<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <meta content="text/html; charset=ISO-8859-1"
      http-equiv="Content-Type">
  </head>
  <body bgcolor="#ffffff" text="#000000">
    <br>
    <br>
    On 5/3/2011 1:32 PM, Michel Fortin wrote:
    <blockquote
      cite="mid:C3AE411E-429B-4E0F-A77F-785EA6F24CC4@michelf.com"
      type="cite"><br>
      <pre wrap="">
DMD emits code in a special "multiobj" mode when using the -lib switch. I had to disable this in my Objective-C-aware branch of the compiler because it didn't play well with Objective-C class definitions (maybe I could make it work, but I have more pressing things to do).

Now, I observe that Phobos compiled with my modified DMD makes 2501452 bytes, whereas the one that comes bundled with DMD makes 6646800 bytes... Granted, it's not exactly the same version of Phobos and druntime (I'm probably a little behind but with a few things added to my druntime branch), but the stunning difference leads me to believe "multiobj" might be the cause for this difference in size.
</pre>
    </blockquote>
    <br>
    The size of libphobos.a has <b>nothing</b> to do with the size of
    an executable linked with Phobos.<br>
    <br>
    Multiobj will increase the size of the library simply because
    there's a lot of bookkeeping overhead for each .o file - overhead
    that does not go into the executable.<br>
  </body>
</html>