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.

Reply via email to