Using ccache for build{world, kernel}
Nicolas Blais
nb_root at videotron.ca
Tue Nov 15 14:17:58 PST 2005
On November 15, 2005 05:11 pm, Steve Hodgson wrote:
> Nicolas Blais wrote:
> >On November 15, 2005 04:14 pm, Jens Schweikhardt wrote:
> >>Folks,
> >>
> >># Put this in /usr/ports/devel/ccache/files/patch-nohash-size-mtime and
> >># reinstall the port. Then export CCACHE_NOHASH_SIZE_MTIME=y during your
> >># makes for buildworld and buildkernel. This melts my buildworld time
> >># from 2700s (real@~100%CPU) to under 1000s and buildkernel from 800s
> >># to 250s, so you gain about a factor 3 for ab-initio builds. Sweet!
> >>#
> >>#
> >># --- ccache.c.orig Mon Oct 31 17:38:21 2005
> >># +++ ccache.c Mon Oct 31 17:52:31 2005
> >># @@ -331,8 +331,10 @@
> >># hash_string(str_basename(args->argv[0]));
> >># }
> >>#
> >># - hash_int(st.st_size);
> >># - hash_int(st.st_mtime);
> >># + if (!getenv("CCACHE_NOHASH_SIZE_MTIME")) {
> >># + hash_int(st.st_size);
> >># + hash_int(st.st_mtime);
> >># + }
> >>[Rest of patch snipped ...]
> >>
> >>I just asked the devel/ccache maintainer to commit this patch and he
> >>promptly did (Thanks Michael Johnson, aka ahze!). So you only need this
> >>unless your ports tree is current as of now.
> >>
> >>Regards,
> >>
> >> Jens
> >
> >Thanks, very helpful!
>
> So would the following form a better set of instructions for the port
> (given the above patch is merged)?
>
> 1. don't follow the instructions about changing your PATH and setting
> CCACHE_PATH in /etc/profile or cshrc
> 2. use the following in /etc/make.conf
>
> .if !defined(NOCCACHE)
> .if ${.CURDIR:M/usr/src*}
> CC=CCACHE_NOHASH_SIZE_MTIME=y /usr/local/bin/ccache cc
> CXX=CCACHE_NOHASH_SIZE_MTIME=y /usr/local/bin/ccache c++
> .else
> CC=/usr/local/bin/ccache cc
> CXX=/usr/local/bin/ccache c++
> .endif
> .endif
>
> (untested though)
>
> Steve
Didn't get far:
[snip]
--------------------------------------------------------------
>>> stage 1.1: legacy release compatibility shims
--------------------------------------------------------------
cd /usr/src; MAKEOBJDIRPREFIX=/usr/obj/usr/src/tmp
INSTALL="sh /usr/src/tools/install.sh"
PATH=/usr/obj/usr/src/tmp/legacy/usr/sbin:/usr/obj/usr/src/tmp/legacy/usr/bin:/usr/obj/usr/src/tmp/legacy/usr/games:/sbin:/bin:/usr/sbin:/usr/bin
WORLDTMP=/usr/obj/usr/src/tmp MAKEFLAGS="-m /usr/src/tools/build/mk
-m /usr/src/share/mk" make -f Makefile.inc1 DESTDIR= BOOTSTRAPPING=700006
-DNO_HTML -DNO_INFO -DNO_LINT -DNO_MAN -DNO_NLS -DNO_PIC -DNO_PROFILE
-DNO_SHARED -DNO_CPU_CFLAGS -DNO_WARNS legacy
===> tools/build (obj,includes,depend,all,install)
/usr/obj/usr/src/tmp/usr/src/tools/build created for /usr/src/tools/build
cd /usr/src/tools/build; make buildincludes; make installincludes
rm -f .depend
CC='CCACHE_NOHASH_SIZE_MTIME=y /usr/local/bin/ccache cc' mkdep -f .depend -a
-I/usr/obj/usr/src/tmp/legacy/usr/include /usr/src/tools/build/dummy.c
CCACHE_NOHASH_SIZE_MTIME=y: not found
mkdep: compile failed
*** Error code 1
Stop in /usr/src/tools/build.
*** Error code 1
Stop in /usr/src.
*** Error code 1
Stop in /usr/src.
*** Error code 1
Stop in /usr/src.
0.300u 0.138s 0:00.58 74.1% 270+382k 6+1io 1pf+0w
--
FreeBSD 7.0-CURRENT #0: Tue Nov 15 06:21:56 EST 2005
root at clk01a:/usr/obj/usr/src/sys/CLK01A
PGP? : http://www.clkroot.net/security/nb_root.asc
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 187 bytes
Desc: not available
Url : http://lists.freebsd.org/pipermail/freebsd-current/attachments/20051115/e3430ccc/attachment.bin
More information about the freebsd-current
mailing list