http://gcc.gnu.org/bugzilla/show_bug.cgi?id=51813
Paolo Carlini <paolo.carlini at oracle dot com> changed: What |Removed |Added ---------------------------------------------------------------------------- Status|UNCONFIRMED |NEW Last reconfirmed| |2012-01-13 CC| |jason at gcc dot gnu.org Summary|-fvisibility=hidden causes |[4.7 Regression] |std::codecvt members to be |-fvisibility=hidden causes |undefined |std::codecvt members to be | |undefined Ever Confirmed|0 |1 --- Comment #1 from Paolo Carlini <paolo.carlini at oracle dot com> 2012-01-13 11:53:58 UTC --- Jason, this happens only in mainline and I'm trying to figure if it may have to do with our recent changes in the visibility area (like PR35688). We have a problem with, for example, the std::use_facet specializations which we declare extern template (in bits/codecvt.h): extern template const codecvt<wchar_t, char, mbstate_t>& use_facet<codecvt<wchar_t, char, mbstate_t> >(const locale&); note that the latter happens in the namespace std as decorated visibility default. The library normally exports the required use_facet symbol from the .so but for some reason, see Description, the linker doesn't find it. Apparently the problem has more generally to do with extern template things. Any idea what may be going wrong? Is there something the library should do here?