Page MenuHomeFreeBSD

Only compute the X_COMPILER_*/X_LINKER_* variables when needed
ClosedPublic

Authored by arichardson on Sep 5 2018, 3:00 PM.
Tags
None
Referenced Files
F103147780: D17046.diff
Thu, Nov 21, 3:05 PM
Unknown Object (File)
Wed, Nov 20, 12:30 PM
Unknown Object (File)
Tue, Nov 19, 6:05 AM
Unknown Object (File)
Sun, Nov 10, 8:27 PM
Unknown Object (File)
Thu, Nov 7, 12:00 AM
Unknown Object (File)
Mon, Nov 4, 2:23 PM
Unknown Object (File)
Oct 18 2024, 7:58 PM
Unknown Object (File)
Oct 16 2024, 9:41 AM
Subscribers
None

Details

Summary

When building CheriBSD we have to set XLD/XCC/XCFLAGS on the command line.
This triggers the $XCC != $CC case in bsd.compiler.mk (and the same for LD
in bsd.linker.mk) which causes it to call ${XCC} --version and
${XLD} --version (plus various awk+sed+echo calls) in every subdirectory.
For incremental builds and stages that only walk the source tree this is
often the majority of the time spent in that directory.

By only computing the value of the X_COMPILER_*/X_LINKER_* variables if
_WANT_TOOLCHAIN_CROSS_VARS is set we can reduce the number of cc/ld calls
to once per build stage instead of once per recursive make.

With this change (and no changes to the sources) the make includes stage
now takes 28 seconds at -j1 instead of 86 seconds.

Diff Detail

Lint
Lint Passed
Unit
No Test Coverage
Build Status
Buildable 19415
Build 19012: arc lint + arc unit