Re: Using ccache for build{world, kernel}

From: Jens Schweikhardt <schweikh_at_schweikhardt.net>
Date: Wed, 16 Nov 2005 18:58:53 +0100
On Tue, Nov 15, 2005 at 07:41:58PM -0500, Nicolas Blais wrote:
...
# Whatever the final outcome, the current port of ccache breaks a lot of big 
# compiles (3 ports failed during 'portupgrade -ai', such as GTK2.8.7 and 
# buildworld) while NOCCACHE makes the build a success. 
# 
# Maybe flag the port 'broken' until it is safe to use?

The ccache port is not broken. Rather, the assumption that any port can
deal with CC="foo bar" is wrong. Some ports choke because they've never
seen a CC like that (libtool15 comes to mind), some may choke because
their build can't deal with a space in a program name (shell word splitting
at the wrong time or not at all is a likely culprit). Some insist on
their own special-tailored compiler (openoffice). The build hackery out
there in 13000 ports is unbelievably, uh, creative. To avoid all of these
issues you have to replace all of /usr/bin/{cc,c++,gcc,g++,...} and
/usr/local/bin/gcc-ooo and that ilk with a symlink to /usr/local/bin/ccache
and put the real compilers in some other directory. In other words, the
ccache installation is as transparent as can be. The various builds don't
even know that they are using ccache when they run /usr/bin/cc and you don't
need any CC, CXX or PATH sequence hackery. Usually this means to set
CCACHE_PATH which collides with the needs of a "make buildworld". So,
you really need two different strategies, one when building
world/kernel, and one for all other purposes. That's what I do right now
and so far I have no problems with ports and ccache.

Regards,

	Jens
-- 
Jens Schweikhardt http://www.schweikhardt.net/
SIGSIG -- signature too long (core dumped)
Received on Thu Nov 17 2005 - 16:43:22 UTC

This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:38:47 UTC