<html>
    <head>
      <base href="http://bugzilla.gdcproject.org/" />
    </head>
    <body><table border="1" cellspacing="0" cellpadding="8">
        <tr>
          <th>Bug ID</th>
          <td><a class="bz_bug_link 
          bz_status_NEW "
   title="NEW - Executable size 9.3MB"
   href="http://bugzilla.gdcproject.org/show_bug.cgi?id=155">155</a>
          </td>
        </tr>

        <tr>
          <th>Summary</th>
          <td>Executable size 9.3MB
          </td>
        </tr>

        <tr>
          <th>Product</th>
          <td>GDC
          </td>
        </tr>

        <tr>
          <th>Version</th>
          <td>4.9.x
          </td>
        </tr>

        <tr>
          <th>Hardware</th>
          <td>x86_64
          </td>
        </tr>

        <tr>
          <th>OS</th>
          <td>Linux
          </td>
        </tr>

        <tr>
          <th>Status</th>
          <td>NEW
          </td>
        </tr>

        <tr>
          <th>Severity</th>
          <td>normal
          </td>
        </tr>

        <tr>
          <th>Priority</th>
          <td>Normal
          </td>
        </tr>

        <tr>
          <th>Component</th>
          <td>gdc
          </td>
        </tr>

        <tr>
          <th>Assignee</th>
          <td>ibuclaw@gdcproject.org
          </td>
        </tr>

        <tr>
          <th>Reporter</th>
          <td>dbugreporter@gmail.com
          </td>
        </tr></table>
      <p>
        <div>
        <pre>GDC 4.9.0 gives me 9.3 megabyte executable for this:

import std.stdio;
void main() {
    writeln("hello");
}

If I strip it, size goes to 1.6 megabytes which still seems large.

$ ld --version
GNU ld (GNU Binutils for Ubuntu) 2.23.52.20130913
Copyright 2013 Free Software Foundation, Inc.

$ objdump -h hello | egrep -v 'CONTENTS|ALLOC'

hello:     file format elf64-x86-64

Sections:
Idx Name          Size      VMA               LMA               File off  Algn
  0 .interp       0000001c  0000000000400238  0000000000400238  00000238  2**0
  1 .note.ABI-tag 00000020  0000000000400254  0000000000400254  00000254  2**2
  2 .hash         00000648  0000000000400278  0000000000400278  00000278  2**3
  3 .dynsym       00001308  00000000004008c0  00000000004008c0  000008c0  2**3
  4 .dynstr       00000914  0000000000401bc8  0000000000401bc8  00001bc8  2**0
  5 .gnu.version  00000196  00000000004024dc  00000000004024dc  000024dc  2**1
  6 .gnu.version_r 000000d0  0000000000402678  0000000000402678  00002678  2**3
  7 .rela.dyn     000000c0  0000000000402748  0000000000402748  00002748  2**3
  8 .rela.plt     000011a0  0000000000402808  0000000000402808  00002808  2**3
  9 .init         0000001a  00000000004039a8  00000000004039a8  000039a8  2**2
 10 .plt          00000bd0  00000000004039d0  00000000004039d0  000039d0  2**4
 11 .text         000b1d60  00000000004045a0  00000000004045a0  000045a0  2**4
 12 .fini         00000009  00000000004b6300  00000000004b6300  000b6300  2**2
 13 .rodata       00023c42  00000000004b6340  00000000004b6340  000b6340  2**6
 14 .eh_frame_hdr 0000b27c  00000000004d9f84  00000000004d9f84  000d9f84  2**2
 15 .eh_frame     0003466c  00000000004e5200  00000000004e5200  000e5200  2**3
 16 .gcc_except_table 00001260  000000000051986c  000000000051986c  0011986c 
2**2
 17 .tdata        00000008  000000000071b000  000000000071b000  0011b000  2**3
 18 .tbss         000004e0  000000000071b008  000000000071b008  0011b008  2**3
 19 .init_array   000002f8  000000000071b008  000000000071b008  0011b008  2**3
 20 .fini_array   00000008  000000000071b300  000000000071b300  0011b300  2**3
 21 .jcr          00000008  000000000071b308  000000000071b308  0011b308  2**3
 22 .data.rel.ro  00000028  000000000071b310  000000000071b310  0011b310  2**4
 23 .dynamic      00000210  000000000071b338  000000000071b338  0011b338  2**3
 24 .got          00000008  000000000071b548  000000000071b548  0011b548  2**3
 25 .got.plt      000005f8  000000000071b550  000000000071b550  0011b550  2**3
 26 .data         0006f574  000000000071bb80  000000000071bb80  0011bb80  2**6
 27 .bss          00000558  000000000078b100  000000000078b100  0018b0f4  2**6
 28 .<a href="show_bug.cgi?id=155#c0000007">comment      0000007</a>b  0000000000000000  0000000000000000  0018b0f4  2**0
 29 .debug_aranges 000124f0  0000000000000000  0000000000000000  0018b16f  2**0
 30 .debug_info   00247eee  0000000000000000  0000000000000000  0019d65f  2**0
 31 .debug_abbrev 0001b61b  0000000000000000  0000000000000000  003e554d  2**0
 32 .debug_line   0006445a  0000000000000000  0000000000000000  00400b68  2**0
 33 .debug_str    000e076a  0000000000000000  0000000000000000  00464fc2  2**0
 34 .debug_loc    0024f29e  0000000000000000  0000000000000000  0054572c  2**0
 35 .debug_ranges 000abdf0  0000000000000000  0000000000000000  007949ca  2**0

Most of the size comes from those debug sections. Even if I use the -frelease
option with gdc, the debug sections will still be there. If I strip the binary
they go away.</pre>
        </div>
      </p>
      <hr>
      <span>You are receiving this mail because:</span>
      
      <ul>
          <li>You are watching all bug changes.</li>
      </ul>
    </body>
</html>