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