www.digitalmars.com         C & C++   DMDScript  

D.gnu - [Bug 155] New: Executable size 9.3MB

Date: Thu, 28 Aug 2014 13:36:05 +0100
MIME-Version: 1.0
Content-Type: text/plain; charset="UTF-8"

http://bugzilla.gdcproject.org/show_bug.cgi?id=155

            Bug ID: 155
           Summary: Executable size 9.3MB
           Product: GDC
           Version: 4.9.x
          Hardware: x86_64
                OS: Linux
            Status: NEW
          Severity: normal
          Priority: Normal
         Component: gdc
          Assignee: ibuclaw gdcproject.org
          Reporter: dbugreporter gmail.com

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 .comment      0000007b  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.

-- 
You are receiving this mail because:
You are watching all bug changes.
Aug 28 2014