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 lto/53831] [4.7/4.8 Regression] Virtuals missing in LTO symtab


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

--- Comment #25 from Jan Hubicka <hubicka at gcc dot gnu.org> 2012-10-06 14:50:27 UTC ---
What you hit here is the V1 linker plugin API hack.  We, for purpose, hide
COMDAT objects when we know we can hide them, because otherwise linker will
assign them PREVAILING and we will be forced to output them even if they are
otherwise unused.  This kills code quality and breaks some C++ apps.

Plugin API is underspecfied as what symbols you can create without being asked
for.  Obviously one need to create ones to get WHOPR work. I would agree with
comment #4 that linker should survive introduction of the COMDAT.

I am not sure if the testcase is invalid - it should include the definition of
the function IMO. But without giving up on V1 API we can not fix that.  I am
going to commit that to 4.8, so that will leave it 4.7 regression (or
non-regression) only.

We discussed it couple times - there is way to get this working with V2 linker
while still supporting hack for V1 API. It requires moving the whole logic into
plugin and I am not sure it is worth the effort for 4.7 alone.


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