The and headers each include each other, which makes building them as header-units "exciting". The header only needs the definition of std::exception (in order to derive from it) which is already in its own header, so just include that. libstdc++-v3/ChangeLog: * include/bits/stl_iterator.h: Include for definitions of __try, __catch and __throw_exception_again. (counted_iterator::operator++(int)): Use __throw_exception_again instead of throw. * libsupc++/new: Include not . * libsupc++/new_opvnt.cc: Include . * testsuite/18_support/destroying_delete.cc: Include for std::is_same_v definition. * testsuite/20_util/variant/index_type.cc: Qualify size_t. Tested powerpc64le-linux. Committed to trunk.