Reduced executable size

vijay nag vijunag@gmail.com
Fri Jun 21 06:16:00 GMT 2013


Hi,

I upgraded my compiler to gcc-4.7.2 and I noticed that executable size
had been reduced by 55%. Same source code compiled using gcc-3.4.6
produced an executable
of size ~2GB and the size of the executable compiled using gcc-4.7.2
is around 890 MB. I did a diff of readelf o/p of two executable and
found that
"debug_pubnames" was missing in the newer executable. What is the
significance of this section ?  Can anyone explain me this reduction
in size ?
I'm little bit skeptical that something is terribly amiss here.

old executable readelf -a o/p

  [23] .debug_aranges    PROGBITS        00000000 139ea8e0 025048 00
   0   0  8
  [24] .debug_pubnames   PROGBITS        00000000 13a0f928 4aad87 00
   0   0  1
  [25] .debug_info       PROGBITS        00000000 13eba6af 630b6e95 00
     0   0  1
  [26] .debug_abbrev     PROGBITS        00000000 76f71544 3a13a5 00
   0   0  1
  [27] .debug_line       PROGBITS        00000000 773128e9 1476581 00
    0   0  1
  [28] .debug_frame      PROGBITS        00000000 78788e6c ed2280 00
   0   0  4
  [29] .debug_str        PROGBITS        00000000 7965b0ec f371c0 00
   0   0  1
  [30] .debug_ranges     PROGBITS        00000000 7a5922ac 27d6c0 00
   0   0  1


New executable readelf -a o/p

  [28] .debug_aranges    PROGBITS        00000000 13d45728 0331f0 00
   0   0  8
  [29] .debug_info       PROGBITS        00000000 13d78918 199fa7c8 00
     0   0  1
  [30] .debug_abbrev     PROGBITS        00000000 2d7730e0 3e25da 00
   0   0  1
  [31] .debug_line       PROGBITS        00000000 2db556ba 1f3af5a 00
    0   0  1
  [32] .debug_str        PROGBITS        00000000 2fa90614 e26b7b 01
MS  0   0  1
  [33] .debug_loc        PROGBITS        00000000 308b718f 4b161cf 00
    0   0  1
  [34] .debug_ranges     PROGBITS        00000000 353cd360 bbb3e0 00
   0   0  8



More information about the Gcc-help mailing list