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

--- Comment #5 from Richard Guenther <rguenth at gcc dot gnu.org> 2012-05-09 
09:10:35 UTC ---
(In reply to comment #4)
> Hi Honza,
> I forgot to say that I tried both 
> -flto-partition=1to1
> and
> -flto-partition=none
> with the same result
> 
> the point is that the symbols in question refers to a templated function
> explicitly defined as
> template  edm::eventsetup::EventSetupRecordKey
> edm::eventsetup::heterocontainer::makeKey<_recordclassname_,
> edm::eventsetup::EventSetupRecordKey>()
> 
> in the attached there are three of those: only one is hidden.
> In the "real" library there are 307 of those, only 7 are hidden!
> SO I suspect some sort of bug in lto
> 
> I will try to produce a synthetic test

All hidden symbols are postfixed with something like .local.77.4195, making
them no longer the symbols for the explicitely instantiated functions.

I suppose you say that the bug is that you have explicitely instantiated
some templates which you want to have appear in the library as exported
but LTO makes all instances hidden so that no externally visible symbol
for that explicitely instantiated template remains?

Reply via email to