FreeBSD ccache port is wonderfiul!

Andrew P. infofarmer at gmail.com
Thu Nov 24 23:10:58 GMT 2005


On 11/24/05, Jens Schweikhardt <schweikh at schweikhardt.net> wrote:
> On Mon, Nov 21, 2005 at 07:25:15PM +0300, Andrew P. wrote:
> ...
> # Beware, ccache brings bad luck in quite a few cases.
> # Start using it for /usr/src and first effects will be visible
> # in a few weeks.
>
> This is almost certainly a pilot error. The problem is invariably
> one of not understanding how ccache finds the real compiler in
> conjunction with not knowing the internals of a 'make buildworld',
> especially when CC and CXX are set. (Note to Tridge: buildworld
> compiles a cc, installs a complete temporary build environment and
> uses that environment's compiler and headers from that point on.
> The interesting problem is how to make ccache find the same cc's.
> There are ways, but they're not entirely obvious).
>
> The effect of "It works for several days/weeks to build the world, but
> then suddenly breaks" is caused by using the /usr/bin/cc compiler in
> stages 4.1 and later, when instead /usr/obj/usr/src/tmp/usr/bin/cc must
> be used. This stage has headers that differ from the ones /usr/bin/cc
> finds in /usr/include. So whenever a macro is added to one of the
> headers and that macro used anywhere else the (pilot errored) build
> breaks from that moment on.
>
> # IMHO, ccache has still some way to
> # go in order into production.
>
> It is ready for production and has been for as long as I use it (1yr).
> Please see the thread "Using ccache for build{world, kernel}" on the
> current@ mailing list (only two weeks ago).
>
>
> Regards,
>
>         Jens
> --
> Jens Schweikhardt http://www.schweikhardt.net/
> SIGSIG -- signature too long (core dumped)
>

Yes, you're right. My understanding of gcc itself is
quite vague and that prevented me from seeing
that my installed compiler suite might just not be
suitable for building the new world.

By saying "to go into production" I meant this:
ccache is based on such a great idea, that it is
a wonder that it haven't been integrated into
build processes such as buildworld or even gcc
itself yet. As we can see, there are some problems
with using ccache in production. While that's not
a fault of Andrew Tridgell (or anybody's else for
that matter), we must find a clear way to work
around these issues so that all and everybody
can stop wasting their CPU cycles on recompiling
the same thing over and over.

Thanks for understanding and sorry for
misunderstading.

Take care,
Andrew P.


More information about the freebsd-ports mailing list