Using ccache with make world
michael johnson
buhnux at gmail.com
Tue Mar 21 13:45:48 UTC 2006
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"
>
More information about the freebsd-ports
mailing list