ccache support for make buildworld/make release
schweikh at schweikhardt.net
Sun Sep 12 04:24:26 PDT 2004
On Wed, Aug 25, 2004 at 11:33:42AM -0700, Kris Kennaway wrote:
# BTW, I don't think there's anything to set up..you just set
# CC="ccache cc" or similar.
Has anyone gotten this to work? I have fixed the "#ident" problem
by patching /usr/src/contrib/gcc/c-ppoutput.c to remove the double quotes,
--- src/contrib/gcc/c-ppoutput.c 2004/08/26 14:10:04 1.1
+++ src/contrib/gcc/c-ppoutput.c 2004/08/26 14:10:32
@@ -292,7 +292,7 @@
const cpp_string *str)
maybe_print_line (print.map, line);
- fprintf (print.outf, "#ident \"%s\"\n", str->text);
+ fprintf (print.outf, "#ident %s\n", str->text);
and installed that cc et al in /usr/bin.
I can make it work for buildkernel (cuts down time to 30%, woohoo!), but
$ make -s CC='/usr/local/bin/ccache cc' CXX='/usr/local/bin/ccache c++' buildworld
$ make -s CC='/usr/local/bin/ccache /usr/bin/cc' CXX='/usr/local/bin/ccache /usr/bin/c++' buildworld
both fail with
===> lib/libpam/modules/pam_unix (all)
===> lib/libpam/libpam (all)
===> lib/libautofs (all)
/share/HEAD/src/lib/libautofs/libautofs.c:49:30: fs/autofs/autofs.h: No such file or directory
/share/HEAD/src/lib/libautofs/libautofs.c: In function `autoreq_get':
/share/HEAD/src/lib/libautofs/libautofs.c:253: error: invalid use of undefined type `struct autofs_userreq'
/share/HEAD/src/lib/libautofs/libautofs.c:253: error: dereferencing pointer to incomplete type
/share/HEAD/src/lib/libautofs/libautofs.c: In function `do_autoreq_get':
while without ccache the buildworld completes successfully as expected.
So it's not an issue with my src tree and it's not an issue of leftovers
from previous builds as I always start from scratch with cvs co src in
an empty directory. I rather expect some subtle interaction of ccache
and the CC environment/make variables with the build. A possible
candidate is /usr/bin/mkdep which is used a lot during builds and is
sensitive to CC settings.
Anyone successfully used ccache for a buildworld?
Jens Schweikhardt http://www.schweikhardt.net/
SIGSIG -- signature too long (core dumped)
More information about the freebsd-current