Enforce _LIBCPP_REMOVE_TRANSITIVE_INCLUDES for libcxx
Categories
(Firefox Build System :: General, task)
Tracking
(firefox148 fixed)
| Tracking | Status | |
|---|---|---|
| firefox148 | --- | fixed |
People
(Reporter: sergesanspaille, Assigned: sergesanspaille)
References
(Blocks 1 open bug)
Details
Attachments
(1 file)
When set, _LIBCPP_REMOVE_TRANSITIVE_INCLUDES informs libcxx that transitive inclusion of standard headers must be removed, which should enable faster build and conforms to the general practice of including explicitly what we use instead of relying on implicit dependencies.
| Assignee | ||
Comment 1•7 months ago
|
||
As a side note: I've measured the impact in terms of preprocessed lines removed and it's currently super low (a thousand lines, a drop in the ocean).
That being said, it also detected an implicit dependency (see Bug 2005998), so it's good to have for that aspect.
| Assignee | ||
Comment 2•7 months ago
|
||
See https://libcxx.llvm.org/DesignDocs/HeaderRemovalPolicy.html for the
design document, but basically this should make header dependencies less
costly in terms of compilation time.
Comment 3•7 months ago
|
||
clang defines _LIBCPP_REMOVE_TRANSITIVE_INCLUDES when compiling with -std=c++23, so fixing these transitive include errors is a blocker to updating from C++23.
Updated•7 months ago
|
Updated•7 months ago
|
Description
•