Re: Using ccache with make world

From: michael johnson <buhnux_at_gmail.com>
Date: Tue, 21 Mar 2006 08:45:41 -0500
On 3/21/06, Alex Dupre <ale_at_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_at_freebsd.org mailing list
> http://lists.freebsd.org/mailman/listinfo/freebsd-ports
> To unsubscribe, send any mail to "freebsd-ports-unsubscribe_at_freebsd.org"
>
Received on Tue Mar 21 2006 - 12:45:47 UTC

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