Page MenuHomeFreeBSD

Avoid recomputing COMPILER_/LINKER_ variables when set explicitly
ClosedPublic

Authored by arichardson on Aug 7 2020, 11:34 AM.
Tags
None
Referenced Files
F151205199: D25986.id76241.diff
Mon, Apr 6, 7:57 PM
Unknown Object (File)
Sat, Apr 4, 1:42 AM
Unknown Object (File)
Tue, Mar 24, 4:03 AM
Unknown Object (File)
Tue, Mar 24, 3:47 AM
Unknown Object (File)
Mon, Mar 23, 6:31 AM
Unknown Object (File)
Sat, Mar 21, 6:41 AM
Unknown Object (File)
Wed, Mar 18, 4:34 AM
Unknown Object (File)
Mar 2 2026, 8:17 PM
Subscribers

Details

Summary

I noticed that when we build libraries for a different ABI (in CheriBSD) we
were calling ${XCC}/${LD} --version for every directory. It turns out that
this was caused by bsd.compat.mk explicitly setting (X_)COMPILER variables
for that build stage and this stops the _can_export logic from working.
To fix this, we change the check to only set _can_export=no if the variable
is set and it is set to a different value than the cached value.
This noticeably speeds up the tree walk while building compat libraries.

Obtained from: CheriBSD

Test Plan

Adding debug output shows fewer cc --version calls and we have been using this
patch for a long time in CheriBSD.

Diff Detail

Lint
Lint Passed
Unit
No Test Coverage
Build Status
Buildable 32833
Build 30244: arc lint + arc unit