Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 21 Mar 2006 08:45:41 -0500
From:      "michael johnson" <buhnux@gmail.com>
To:        "Alex Dupre" <ale@freebsd.org>
Cc:        freebsd-current@freebsd.org, ahze@freebsd.org, freebsd-ports@freebsd.org
Subject:   Re: Using ccache with make world
Message-ID:  <b2203fed0603210545y1693b138y94477a7d810bc9e7@mail.gmail.com>
In-Reply-To: <441FFF0C.4010107@FreeBSD.org>
References:  <441FFF0C.4010107@FreeBSD.org>

next in thread | previous in thread | raw e-mail | index | archive | help
On 3/21/06, Alex Dupre <ale@freebsd.org> wrote:
>
> Short summary:
>
> I made a patch to ccache port so that we can actually and effectively
> use ccache when making buildworld and buildkernel. The patch can be
> found at: http://www.alexdupre.com/ccache.diff
> Read the ccache-freebsd-howto.txt file before using ccache.
>
> Long description:
>
> As you know, until now, building FreeBSD with ccache spotted several
> issues because of the complex "make world" process; in particular it
> changes the default path and build a new compiler with different header
> files and this avoids any effective use of ccache. Some workarounds grew
> up, but they fix only a subset of the problems, creating (sooner or
> later) issues elsewhere. This patch tries to fix (or at least minimize)
> all the problems, implementing a mixture of floating ideas collected
> from various threads. For an implementation overview, I recommend to
> read the simple patch, because explaining it will be more complex for me
> :-)
>
> Benchmarks:


I think everything looks good, but is there not some overhead by
using a shell script in world-cc and world-c++? I'm not sure that there
would be a better way of doing what you want than what you have now
though.



Just booted into a new world/kernel, compiled (and installed) for the
> first time with ccache. /usr/obj is empty.
>
> # ccache -s
> cache directory                     /usr/.ccache
> cache hit                            932
> cache miss                         16144
> called for link                      755
> multiple source files                  1
> compile failed                       107
> preprocessor error                    35
> not a C/C++ file                    1550
> autoconf compile/link                807
> unsupported compiler option          546
> no input file                        116
> files in cache                     32288
> cache size                         219.7 Mbytes
> max cache size                     976.6 Mbytes
>
> # time make buildworld
> [...]
> 547.504u 206.484s 18:02.28 69.6%       2792+1865k 38436+7220io 6874pf+0w
>
> # ccache -s
> cache directory                     /usr/.ccache
> cache hit                          13027
> cache miss                         16265
> called for link                     1311
> multiple source files                  2
> compile failed                       107
> preprocessor error                    35
> not a C/C++ file                    2759
> autoconf compile/link                807
> unsupported compiler option          546
> no input file                        117
> files in cache                     32530
> cache size                         220.0 Mbytes
> max cache size                     976.6 Mbytes
>
> # time make buildkernel
> [...]
> 125.756u 47.537s 5:03.57 57.0%  2664+1990k 13871+4882io 715pf+0w
>
> # ccache -s
> cache directory                     /usr/.ccache
> cache hit                          15070
> cache miss                         16268
> called for link                     1314
> multiple source files                  2
> compile failed                       107
> preprocessor error                    35
> not a C/C++ file                    2763
> autoconf compile/link                807
> unsupported compiler option          552
> no input file                        117
> files in cache                     32536
> cache size                         220.2 Mbytes
> max cache size                     976.6 Mbytes
>
> --
> Alex Dupre
> _______________________________________________
> freebsd-ports@freebsd.org mailing list
> http://lists.freebsd.org/mailman/listinfo/freebsd-ports
> To unsubscribe, send any mail to "freebsd-ports-unsubscribe@freebsd.org"
>



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?b2203fed0603210545y1693b138y94477a7d810bc9e7>