https://gcc.gnu.org/bugzilla/show_bug.cgi?id=60936
--- Comment #26 from Jonathan Wakely <redi at gcc dot gnu.org> --- (In reply to __vic from comment #11) > condition_variable.o > cow-stdexcept.o > cow-string-inst.o > eh_throw.o > functexcept.o > functional.o > futex.o > future.o > ios_failure.o > regex.o > stdexcept.o > string-inst.o > system_error.o These dependencies are because src/c++11/functexcept.o requires the destructors and vtables of all exception types. By moving __throw_bad_function_call and __throw_regex_error and __throw_future_error into separate files we can get the testcase smaller still: 233440 gcc7-splitexcept.so And splitting up src/c++11/system_error.o gives: 225160 gcc7-splitexcept2.so