Date: Mon, 26 Jan 2015 15:47:28 +0000 From: Matthew Seaman <matthew@freebsd.org> To: freebsd-questions@freebsd.org Subject: Re: Source Build Question Message-ID: <54C66190.5020101@freebsd.org> In-Reply-To: <CAHzLAVFeeuBYiP%2BzK3zhModKpEzZeeNVwG6cjb3%2BYLGPa_5oCA@mail.gmail.com> References: <CAHzLAVFeeuBYiP%2BzK3zhModKpEzZeeNVwG6cjb3%2BYLGPa_5oCA@mail.gmail.com>
next in thread | previous in thread | raw e-mail | index | archive | help
This is an OpenPGP/MIME signed message (RFC 4880 and 3156) --x4XXeeaPV2mpXcFkPOKFUx52VEeevpWgh Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable On 01/26/15 15:11, Rick Miller wrote: > Hi all, >=20 > The output below is an excerpt from 2 source builds of the same source > (releng/10.0) on 2 different hosts. The obvious difference is "all" vs= > "depend", but what exactly does this signify and does it impact the > performance of a build? >=20 > /*** Source build, Host 1 ***/ > =3D=3D=3D> lib/clang/libllvmanalysis (all) > =3D=3D=3D> lib/clang/libllvmarchive (all) > =3D=3D=3D> lib/clang/libllvmasmparser (all) > =3D=3D=3D> lib/clang/libllvmasmprinter (all) > =3D=3D=3D> lib/clang/libllvmbitreader (all) > =3D=3D=3D> lib/clang/libllvmbitwriter (all) >=20 > /*** Source build, Host 2 ***/ > =3D=3D=3D> lib/clang/libllvmanalysis (depend) > =3D=3D=3D> lib/clang/libllvmarchive (depend) > =3D=3D=3D> lib/clang/libllvmasmparser (depend) > =3D=3D=3D> lib/clang/libllvmasmprinter (depend) > =3D=3D=3D> lib/clang/libllvmbitreader (depend) > =3D=3D=3D> lib/clang/libllvmbitwriter (depend) >=20 If you're starting from a pristine, newly checked-out source tree in /usr/src and an empty /usr/obj in both cases, then you should see the 'depend' target getting processed fairly early in the build. It's analysing each file of C code to find what headers each depends on. Once this analysis has been done, and the results saved to '.depend' files scattered around various directories under /usr/obj, then there's no need to repeat that step unless any of the C code files are newer (ie. more recently modified) than the generated .depend files. On second and subsequent builds in the same source tree, you may not see the depends being processed again. A simple 'make clean' doesn't (IIRC) remove the generated .depend files -- for that you need to run 'make cleandir ; make cleandir' (Yes, the same thing twice.) or destroying and recreating /usr/obj some other way. It's often faster to have that as a separate partition, and then drop and recreate the filesystem on it than to go around deleting all the files in that directory tree. Cheers, Matthew --x4XXeeaPV2mpXcFkPOKFUx52VEeevpWgh Content-Type: application/pgp-signature; name="signature.asc" Content-Description: OpenPGP digital signature Content-Disposition: attachment; filename="signature.asc" -----BEGIN PGP SIGNATURE----- Version: GnuPG v2 iQJ8BAEBCgBmBQJUxmGQXxSAAAAAAC4AKGlzc3Vlci1mcHJAbm90YXRpb25zLm9w ZW5wZ3AuZmlmdGhob3JzZW1hbi5uZXQxOUYxNTRFQ0JGMTEyRTUwNTQ0RTNGMzAw MDUxM0YxMEUwQTlFNEU3AAoJEABRPxDgqeTnsJsP/3L8XWWcht1faMjGmqmgM5CW qytXnwMcngan109n7Oh3LD9hclnQ5tsGQHeLbNeq0IRh8gHYtlj4Xstuz4kPCbK5 m439bARw1BPoHaaIbSrJXwRUl70KXVpiOJ0y8KTJ5d/lmqkoKZ3R6gb7Lvl/+y/i 1rMaZDfkb6K9UbFfYa5pwGHK+5Lj6E+1f8YZjFb+/YfCZrdcROmRPj3PKeK6RGw1 LDoOvrWBglYK8qnxvQ/0Y2Bq4u5q/rjgYxC03DpDYHhiyjrZyPuAzeATMDVuLk3s JIEMnVMzbGE27iMR/LI+Mz/+dVcOiKN+bPn180in/xrwhY2CzSdciUKKNnW6bJSc Ze5/cdE0xAstWOvSaVEe9y16u5DQgqcACwbtvbEH/B9QPsFi/d513Xn/5kYTTDiG oEvYQZt+/+KEwlnmvFsO7nmfr8Wn9HQ7pTChGWK3ianV6gx/VF8ASe+C2qrgkbCS WcKZyRqFFAY6Vs9PTYTNoOjFV5ANwYszA7xoKMx0uAAJzBGhGC9UlNDNin7bkVoM z2u4azJMhmzFX0kcA8QxGf6liHFGGtet94RanvOAc1KzeloJS4PlTCXZfCngN4lh 9MXCteI6pt1MHU3o9UMFMmpv/Lqk4fLHclz1unMyYKSJ86akqYQ7ckuXFxDR/CeY +7xr8QFdPPiaZvEK9L++ =M43J -----END PGP SIGNATURE----- --x4XXeeaPV2mpXcFkPOKFUx52VEeevpWgh--
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?54C66190.5020101>