This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug c++/43601] Enormous increase in DLL object files size in 4.5
- From: "vz-gcc at zeitlins dot org" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: Mon, 27 Sep 2010 22:43:23 +0000
- Subject: [Bug c++/43601] Enormous increase in DLL object files size in 4.5
- Auto-submitted: auto-generated
- References: <bug-43601-4@http.gcc.gnu.org/bugzilla/>
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=43601
--- Comment #31 from Vadim Zeitlin <vz-gcc at zeitlins dot org> 2010-09-27 22:42:55 UTC ---
(In reply to comment #30)
> Sorry, but I do not completely agree with this assessment. If you run
>
> objdump -h <object> | c++filt
>
> you will see that 4.4 still generates one section per method, not per class
> (the name of the method is reveled by c++filt).
This is somewhat off topic but unfortunately (MinGW) c++filt doesn't work for
me, e.g.:
% echo '.text$_ZNK17wxMBConvUTF16Base11GetMBNulLenEv'|/mingw/bin/c++filt.exe
.text$_ZNK17wxMBConvUTF16Base11GetMBNulLenEv
I don't know what could be wrong with it but, anyhow, you're right, of course,
and I was wrong (I managed to look at the classes whose methods were not used
by the object file I was checking...), sorry for misinformation and thanks for
correcting it!
> In my view, the difference is only that 4.5 emits a section for every inline
> method of every dllexported class in sight. 4.4 only emitted those which the
> code actually needed.
Yes, exactly.
> Why there is one section for each emitted inline method?
Excellent question which I'm unfortunately totally unable to answer.