https://gcc.gnu.org/bugzilla/show_bug.cgi?id=60936
--- Comment #36 from Jonathan Wakely <redi at gcc dot gnu.org> --- Author: redi Date: Mon Sep 18 12:57:05 2017 New Revision: 252925 URL: https://gcc.gnu.org/viewcvs?rev=252925&root=gcc&view=rev Log: PR libstdc++/60936 reduce coupling between objects in libstdc++.a Backport from mainline 2017-02-03 Jonathan Wakely <jwak...@redhat.com> PR libstdc++/60936 * src/c++11/Makefile.am: Add new files. * src/c++11/Makefile.in: Regenerate. * src/c++11/cow-string-inst.cc [!_GLIBCXX_USE_CXX11_ABI] (operator<<, operator>>, getline): Move explicit instantiations to ... * src/c++11/cow-string-io-inst.cc: ... new file. * src/c++11/cow-wstring-inst.cc [!_GLIBCXX_USE_CXX11_ABI] (operator<<, operator>>, getline): Move explicit instantiations to ... * src/c++11/cow-wstring-io-inst.cc: ... new file. * src/c++11/functexcept.cc (__throw_ios_failure, __throw_system_error) (__throw_future_error, __throw_bad_function_call): (__throw_regex_error): Move functions for C++11 exceptions to the files that define the exception types. * src/c++11/functional.cc (__throw_bad_function_call): Move here. * src/c++11/future.cc (__throw_future_error): Likewise. * src/c++11/ios.cc (__throw_ios_failure): Likewise. * src/c++11/regex.cc (__throw_regex_error): Likewise. * src/c++11/snprintf_lite.cc (__concat_size_t): Print decimal representation directly instead of calling __int_to_char. * src/c++11/sso_string.cc (__sso_string): New file for definition of __sso_string type. * src/c++11/string-io-inst.cc [_GLIBCXX_USE_CXX11_ABI]: New file for explicit instantiations of narrow string I/O functions. * src/c++11/system_error.cc (__throw_system_error): Move here. (__sso_string): Move to new file. * src/c++11/wstring-io-inst.cc [_GLIBCXX_USE_CXX11_ABI]: New file for explicit instantiations of wide string I/O functions. * src/c++98/misc-inst.cc [_GLIBCXX_USE_CXX11_ABI] (operator<<) (operator>>, getline): Remove explicit instantiations from here. Added: branches/gcc-6-branch/libstdc++-v3/src/c++11/cow-string-io-inst.cc - copied, changed from r252920, branches/gcc-6-branch/libstdc++-v3/src/c++11/cow-wstring-inst.cc branches/gcc-6-branch/libstdc++-v3/src/c++11/cow-wstring-io-inst.cc - copied, changed from r252920, branches/gcc-6-branch/libstdc++-v3/src/c++11/cow-wstring-inst.cc branches/gcc-6-branch/libstdc++-v3/src/c++11/sso_string.cc - copied, changed from r252920, branches/gcc-6-branch/libstdc++-v3/src/c++11/system_error.cc branches/gcc-6-branch/libstdc++-v3/src/c++11/string-io-inst.cc - copied, changed from r252920, branches/gcc-6-branch/libstdc++-v3/src/c++11/functional.cc branches/gcc-6-branch/libstdc++-v3/src/c++11/wstring-io-inst.cc - copied, changed from r252920, branches/gcc-6-branch/libstdc++-v3/src/c++11/cow-wstring-inst.cc Modified: branches/gcc-6-branch/libstdc++-v3/ChangeLog branches/gcc-6-branch/libstdc++-v3/src/c++11/Makefile.am branches/gcc-6-branch/libstdc++-v3/src/c++11/Makefile.in branches/gcc-6-branch/libstdc++-v3/src/c++11/cow-string-inst.cc branches/gcc-6-branch/libstdc++-v3/src/c++11/cow-wstring-inst.cc branches/gcc-6-branch/libstdc++-v3/src/c++11/functexcept.cc branches/gcc-6-branch/libstdc++-v3/src/c++11/functional.cc branches/gcc-6-branch/libstdc++-v3/src/c++11/future.cc branches/gcc-6-branch/libstdc++-v3/src/c++11/ios.cc branches/gcc-6-branch/libstdc++-v3/src/c++11/regex.cc branches/gcc-6-branch/libstdc++-v3/src/c++11/snprintf_lite.cc branches/gcc-6-branch/libstdc++-v3/src/c++11/system_error.cc branches/gcc-6-branch/libstdc++-v3/src/c++98/misc-inst.cc