Why not cc me or even send this re: to the original thread? On 10/20/2015 6:32 AM, Juan Ramón Molina Menor wrote: > Hi! > > I’m certainly doing it wrong, because CCACHE does not kick in after > applying the patch and modifying make.conf. CCACHE stats ('ccache -z' > followed by 'ccache -s') remain at zero during buildworld while they > used to reflect the cache miss/hits before. > > # cat /etc/make.conf > WITH_CCACHE_BUILD= > > # svn diff /usr/src/share/mk/local.init.mk > Index: /usr/src/share/mk/local.init.mk > =================================================================== > --- /usr/src/share/mk/local.init.mk (revision 289627) > +++ /usr/src/share/mk/local.init.mk (working copy) > _at__at_ -38,3 +38,37 _at__at_ > HOST_CFLAGS+= -DHOSTPROG > CFLAGS+= ${HOST_CFLAGS} > .endif > + > +# Handle ccache after CC is determined. If CC is at some specific path > then > +# we must prepend the ccache wrapper. Otherwise we can just prepend > PATH with > +# the wrapper location, which is a more safe solution since it avoids > spaces > +# and compiler type guessing based on filename. > +LOCALBASE?= /usr/local > +CCACHE_WRAPPER_PATH?= ${LOCALBASE}/libexec/ccache > +CCACHE_PATH?= ${LOCALBASE}/bin/ccache > +.if defined(WITH_CCACHE_BUILD) && !defined(NOCCACHE) && \ > + ${CC:M*ccache*} == "" && exists(${CCACHE_PATH}) > +# Handle compiler changes properly. This avoids needing to use the > 'world' > +# wrappers. > +CCACHE_COMPILERCHECK?= content > +.export CCACHE_COMPILERCHECK > +.if ${CC:M/*} == "" > +# Can use PATH. > +PATH:= ${CCACHE_WRAPPER_PATH}:${PATH} > +.export PATH > +.else > +# Must prepend CC. > +CC:= ${CCACHE_PATH} ${CC} > +CXX:= ${CCACHE_PATH} ${CXX} > +CPP:= ${CCACHE_PATH} ${CPP} > +.if defined(HOST_CC) > +HOST_CC:= ${CCACHE_PATH} ${HOST_CC} > +.endif > +.if defined(HOST_CXX) > +HOST_CXX:= ${CCACHE_PATH} ${HOST_CXX} > +.endif > +.if defined(HOST_CPP) > +HOST_CPP:= ${CCACHE_PATH} ${HOST_CPP} > +.endif > +.endif > +.endif # WITH_CCACHE_BUILD > > If I recover the old make.conf, CCACHE works again for a buildworld. > > # cat /etc/make.conf.old > .if (!empty(.CURDIR:M/usr/src*) || !empty(.CURDIR:M/usr/obj*)) > .if !defined(NOCCACHE) && exists(/usr/local/libexec/ccache/world/cc) > CC:=${CC:C,^cc,/usr/local/libexec/ccache/world/cc,1} > CXX:=${CXX:C,^c\+\+,/usr/local/libexec/ccache/world/c++,1} > .endif > .endif > > Maybe I misconfigured CCACHE when I first installed it? > This doesn't check for a value of WITH_CCACHE_BUILD, just being defined is enough. I've been fixing some subtle bugs such as in the lib32 build, but overall I've had ccache -s growing while using the patch. If you already have ccache in CC it won't apply it. Are you building head from head or some other configuration? -- Regards, Bryan Drewery
This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:41:00 UTC