https://gcc.gnu.org/bugzilla/show_bug.cgi?id=99413
Bug ID: 99413
Summary: internal library headers are not header-unit ready
Product: gcc
Version: 11.0
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: libstdc++
Assignee: unassigned at gcc dot gnu.org
Reporter: nathan at gcc dot gnu.org
Target Milestone: ---
We're attempting to build the std library as a bunch of header-units. The
include graph partitioner naturally discovers that internal headers from bits/
are included everywhere, and should therefore be header-units themselves. But
several (many?, most?) are not stand alone, and expect their includer to have
included some necessary definitions.
The ones we've hit so far are[*]
bits/predefined_ops.h:153:9: error: '_GLIBCXX14_CONSTEXPR' does not name a type
bits/functional_hash.h:71:31: error: '__void_t' was not declared in this scope
bits/range_access.h:179:33: error: 'reverse_iterator' does not name a type
[*] for reasons we're stuck with gcc-9 era libstdc++.