On 2/20/25 14:09, Yuri wrote:
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=284893
This patch makes ccache work in cases when compiler from the llvm port
is used in cmake-based ports.
ccache has never worked in such cases because it only added ccache
directory into PATH so that c++ the compiler would be substituted with
the ccache enabled one.
The patch adds cmake launcher in order to make ccache work when both
USES=llvm and USES=cmake are present.
Thanks,
Yuri
If its helping activate more ccache, then it helps one of my goals.
I've only started recently looking into what can improve ccache
effectiveness for my machine. ccache4 seems more efficient but I didn't
see a way to choose that or others as the default ccache choice so had
to do a static build and set poudriere to refer to it. ccache4 didn't
seem to have the zfs sizing bug leading to ever-growing cache and
overall seems to store a lot less files in the cache which helps with
disk I/O.
bsd.mozilla.mk seemed to set the compiler with a full path that lead
to not using ccache in this setup (assuming I followed things correctly).
Looking at ccache4 it is missing llvm compiler version entries for 20
(should we automate version gathering yet?) and (not sure if these are
needed/appropriate) -cheri -cheriot -morello. Similarly, gcc was missing
6-aux.
The general compiler listings also don't include clang-cl which had
support added in 4.6 from 2022-02-27, might be related to the lack of
script entries as /usr/bin/clang* that would point to it but I haven't
properly reviewed it and don't remember which ports used clang-cl but
for sure didn't call it through ccache.
Known non-ccache users in this configuration for my system I have
noted for review were webkit*, openjdk (some), openoffice, firefox,
www/node22. I'm sure there are more but I needed to start somewhere.
Some observations other than ccache bypassing that I noticed as I
started exploring were:
ccache had patching that sthill maintained the older style of
commenting the author and a freebsd line; that style was removed from
main port makefiles but don't know when similar cleanup should also follow.
lang/llvm could use the cleanup involving versions no longer
including the suffix
icc is removed; should we remove ccache ports' code related to it?
Old conflicts for long removed ports still seem to exist; when should
we clean them up? lang/cling/Makefile:bin/clang-5.0
Ports using build tools that call other build tools should not be
passing jobs count to such subjobs. Haven't looked recently but I think
cmake(?) was passing it to rust which lead to total processes of
jobs*jobs running at once.
As always, thank you to all involved with making the ports tree what
it is.