Date: Fri, 7 Nov 2014 06:35:28 +1100 (EST) From: Bruce Evans <brde@optusnet.com.au> To: Warner Losh <imp@freebsd.org> Cc: svn-src-head@freebsd.org, svn-src-all@freebsd.org, src-committers@freebsd.org Subject: Re: svn commit: r274183 - head/sys/modules/mrsas Message-ID: <20141107054107.J1777@besplex.bde.org> In-Reply-To: <201411061648.sA6Gma3S047775@svn.freebsd.org> References: <201411061648.sA6Gma3S047775@svn.freebsd.org>
next in thread | previous in thread | raw e-mail | index | archive | help
On Thu, 6 Nov 2014, Warner Losh wrote: > Log: > clean removes @ and machine now, so no need to do it again. That is a bug in the clean target. It invalidates the pathnames in the generated .depend file. The cleandepend target still documents the care that it takes with this: cleandepend: cleanilinks # .depend needs include links so we remove them only together. cleanilinks: rm -f ${_ILINKS} but this is defeated by adding ${_ILINKS} to CLEANFILES unconditionally :-(. BTW, include pollution is now so bad that generating dependencies now takes longer than building everything (except dependencies) in some cases. E.g., for GENERIC on nfs over slow networks like the FreeBSD cluster. make -ss -j8 depend takes 113 seconds real (52 user 22 sys) on ref11-i386. CC=gcc42 COPTFLAGS=-O make -ss -j8 takes only 93 seconds (536 real 74 sys). FreeBSD-4 kernels with about 1/10 as many dependencies take about 8 seconds for make -ss -j1 depend and 32 seconds for make -ss j4 on 2-core systems with slightly slower CPUs but better tuned networks. nfs (without mount -nocto) over slow networks handles lots of little include files especially badly because cto defeats caching (data is cached but metadata is re-obtained from the server on every open). One workaround is to build with a large -j count so that progress can be made in threads no waiting for the network. This doesn't help for "make depend" because it is still done serially. So .depend files should usually not be created, but when they are they are more precious than they used to be and it is more important than it used to be to keep cleandepend separate from clean and not break it. Bruce
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20141107054107.J1777>