make cleanworld

Dimitry Andric dim at FreeBSD.org
Tue Nov 8 21:43:07 UTC 2011


On 2011-11-08 21:49, Alexander Best wrote:
> any reason 'make cleanworld' does
> 
> otaku% make cleanworld
> rm -rf /usr/obj/usr/git-freebsd-head/*
> chflags -R 0 /usr/obj/usr/git-freebsd-head
> rm -rf /usr/obj/usr/git-freebsd-head/*
> 
> where
> 
> otaku% make cleanworld
> chflags -R 0 /usr/obj/usr/git-freebsd-head
> rm -rf /usr/obj/usr/git-freebsd-head/*
> 
> should be sufficient?

The first method is more efficient, because there are usually just a few
files with schg flags set on them (zero even, if you build as a regular
user).

Suppose you have 30,000 files in /usr/obj, of which 20 have schg flags.

The first method will unlink 29,980 files, failing on 20 of them.  Then
it will change flags on just 20 files, and lastly unlink those 20 files.
Total number of 'operations' is 30,000 + 20 + 20 = 30,040.

The second method will change flags on all 30,000 files, then unlink all
30,000 files.  Total number of 'operations' is now 30,000 + 30,000 =
60,000.


More information about the freebsd-toolchain mailing list