This is the mail archive of the gcc-bugs@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[Bug c++/43601] Enormous increase in DLL object files size in 4.5


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=43601

--- Comment #29 from Vadim Zeitlin <vz-gcc at zeitlins dot org> 2010-09-26 22:09:16 UTC ---
Thanks Cesar for your analysis, I was doing the same thing but you beat me to
it. Anyhow, I can confirm your results, i.e. that the increase in size is first
and foremost due to the inflation of the total number of sections (which is
multiplied roughly by 10) as well as the changes to the .eh_frame and .drectve
sections sizes.

I compared the object files for 4.4, 4.5 and 4.5 when using auto-export, i.e.
not using "__attribute__((dllexport))" on exported classes declarations. The
typical results (the exact numbers are, of course, different for each object
file but the trend is the same) are:

             4.4      4.5      4.5-autoexp
------------------------------------------
file size    151K     1.2M       87K
# sections    371     3145        85
.text size  16888    17264     24856
.eh_frame    4004    64424        16
.drectve     8620   113232         0

The difference in number of sections seems to correspond to the fact that 4.5
now generates one section per method of any exported class used by the object
file instead of just one section per class as in 4.4.

Please let me know if I can provide any other information.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]