Re: Using ccache for build{world, kernel}

From: Nicolas Blais <nb_root_at_videotron.ca>
Date: Tue, 15 Nov 2005 17:17:55 -0500
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_at_~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
> >># _at__at_ -331,8 +331,10 _at__at_
> >>#  		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

Received on Tue Nov 15 2005 - 21:17:58 UTC

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