Closed Bug 2005997 Opened 7 months ago Closed 6 months ago

Enforce _LIBCPP_REMOVE_TRANSITIVE_INCLUDES for libcxx

Categories

(Firefox Build System :: General, task)

task

Tracking

(firefox148 fixed)

RESOLVED FIXED
148 Branch
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.

Depends on: 2005998
See Also: → 2000252

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.

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.

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.

Blocks: C++23
Severity: -- → N/A
Depends on: 2006241
Attachment #9532999 - Attachment description: Bug 2005997 - Enable _LIBCPP_REMOVE_TRANSITIVE_INCLUDES for libcxx r=glandium! → Bug 2005997 - Enable _LIBCPP_REMOVE_TRANSITIVE_INCLUDES for libcxx r=cpeterson
Attachment #9532999 - Attachment description: Bug 2005997 - Enable _LIBCPP_REMOVE_TRANSITIVE_INCLUDES for libcxx r=cpeterson → Bug 2005997 - Enable _LIBCPP_REMOVE_TRANSITIVE_INCLUDES for libcxx r=cpeterson!
Status: NEW → RESOLVED
Closed: 6 months ago
Resolution: --- → FIXED
Target Milestone: --- → 148 Branch
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: