Re: [CFT] Buildworld ccache support

From: Bryan Drewery <bdrewery_at_FreeBSD.org>
Date: Wed, 21 Oct 2015 15:13:27 -0700
On 10/21/2015 1:44 PM, Juan Ramón Molina Menor wrote:
> +.if ${CC:M/*} == ""
> +# Can use PATH.
> +PATH:= ${CCACHE_WRAPPER_PATH}:${PATH}

These lines in particular did have problems that I fixed recently.

- It would potentially add /usr/local/libexec/ccache into PATH multiple
times in sub-makes (I think, it may have been my own PATH confusing me).
This would still use ccache.
- It would consider the '-isystem /usr/obj/...' used for LIB32MAKE to
match on '${CC:M/*}' which is intended to see if the compiler itself
starts with a /. In this case of building during build32 ccache was not
used.

I have since added 'env CCACHE=1' to CC and an .info ${PATH} near this
code to see if it is working and it sure seems to be working in all of
the build.  This does suggest that using the PATH method may not be good
as it leads to confusion about whether it is used or not.

I have seen ccache stats get really messed up before.  They seemed stuck
to me earlier.  I had updated ccache in ports recently and had been
building Poudriere using my global ccache dir.  Outside of the jail I
still had the older ccache.  This may have led to it messing up my cache
and stats.  Once I upgraded ccache in the host and cleaned the cache it
seemed to resume incrementing the counters.

I've also since removed the CCP handling from the patch as I found that
ccache just records a stat and bails out in that case.

-- 
Regards,
Bryan Drewery


Received on Wed Oct 21 2015 - 20:13:29 UTC

This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:41:00 UTC