https://gcc.gnu.org/bugzilla/show_bug.cgi?id=88681
Bug ID: 88681 Summary: Missing symbol exports in libstdc++.so Product: gcc Version: unknown Status: UNCONFIRMED Severity: normal Priority: P3 Component: libstdc++ Assignee: unassigned at gcc dot gnu.org Reporter: redi at gcc dot gnu.org Target Milestone: --- The following fails to link: #define _GLIBCXX_USE_CXX11_ABI 0 #include <locale> #include <sstream> #include <string> template<typename C> void test_time_get() { using namespace std; locale loc_c = locale::classic(); basic_istringstream<C> iss; iss.imbue(loc_c); const time_get<C>& tget = use_facet<time_get<C>>(iss.getloc()); typedef istreambuf_iterator<C> iter; const iter end; tm time; ios_base::iostate err = ios_base::badbit; tget.get(iter(iss), end, iss, err, &time, 'Y'); } std::string s = "C"; template<typename C> struct facet : std::collate_byname<C> { facet() : std::collate_byname<C>(s) { } }; template<typename C> void test_collate_byname() { facet<C> c; } int main() { test_time_get<char>(); test_time_get<wchar_t>(); test_collate_byname<char>(); test_collate_byname<wchar_t>(); } The errors are: /usr/bin/ld: /tmp/ccHErRY2.o: in function `void test_time_get<char>()': /tmp/missing.cc:22: undefined reference to `std::time_get<char, std::istreambuf_iterator<char, std::char_traits<char> > >::get(std::istreambuf_iterator<char, std::char_traits<char> >, std::istreambuf_iterator<char, std::char_traits<char> >, std::ios_base&, std::_Ios_Iostate&, tm*, char, char) const' /usr/bin/ld: /tmp/ccHErRY2.o: in function `void test_time_get<wchar_t>()': /tmp/missing.cc:22: undefined reference to `std::time_get<wchar_t, std::istreambuf_iterator<wchar_t, std::char_traits<wchar_t> > >::get(std::istreambuf_iterator<wchar_t, std::char_traits<wchar_t> >, std::istreambuf_iterator<wchar_t, std::char_traits<wchar_t> >, std::ios_base&, std::_Ios_Iostate&, tm*, char, char) const' /usr/bin/ld: /tmp/ccHErRY2.o: in function `facet<char>::facet()': /tmp/missing.cc:30: undefined reference to `std::collate_byname<char>::collate_byname(std::string const&, unsigned long)' /usr/bin/ld: /tmp/ccHErRY2.o: in function `facet<wchar_t>::facet()': /tmp/missing.cc:30: undefined reference to `std::collate_byname<wchar_t>::collate_byname(std::string const&, unsigned long)' collect2: error: ld returned 1 exit status The exports have been missing since these symbols were added for GCC 5.1