Re: ccache support for make buildworld/make release

From: Jens Schweikhardt <schweikh_at_schweikhardt.net>
Date: Sun, 12 Sep 2004 13:24:11 +0200
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.
# 
# Kris

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,
see http://gcc.gnu.org/bugzilla/show_bug.cgi?id=16999
--- 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
_at__at_ -292,7 +292,7 _at__at_
          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);
   print.line++;
 }

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
and
$ 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?

Regards,

	Jens
-- 
Jens Schweikhardt http://www.schweikhardt.net/
SIGSIG -- signature too long (core dumped)
Received on Sun Sep 12 2004 - 09:24:26 UTC

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