Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 1 Jun 2016 22:58:04 +0300
From:      Andrey Chernov <ache@freebsd.org>
To:        Bryan Drewery <bdrewery@FreeBSD.org>, current@freebsd.org
Subject:   Re: 'make depend' or 'make' bug on recent --current
Message-ID:  <b5e60be6-f491-9518-a7a9-e1fce34f3590@freebsd.org>
In-Reply-To: <7f325ac2-f722-c491-fca0-2e582773e780@FreeBSD.org>
References:  <092f5e98-dae8-dbc9-2a6e-7068b972278f@freebsd.org> <311f3a82-b702-d375-170f-82ae39236ab0@FreeBSD.org> <bec48601-f6b4-6b8a-dc0d-fad47416723b@freebsd.org> <7f325ac2-f722-c491-fca0-2e582773e780@FreeBSD.org>

next in thread | previous in thread | raw e-mail | index | archive | help
This is an OpenPGP/MIME signed message (RFC 4880 and 3156)
--aBuSrsc44c2ATrQ49vPoHPsRXt7VuMLF9
Content-Type: multipart/mixed; boundary="vXhEi6aPxV3tUFTUMaaSOCuc4P22q6AK9"
From: Andrey Chernov <ache@freebsd.org>
To: Bryan Drewery <bdrewery@FreeBSD.org>, current@freebsd.org
Message-ID: <b5e60be6-f491-9518-a7a9-e1fce34f3590@freebsd.org>
Subject: Re: 'make depend' or 'make' bug on recent --current
References: <092f5e98-dae8-dbc9-2a6e-7068b972278f@freebsd.org>
 <311f3a82-b702-d375-170f-82ae39236ab0@FreeBSD.org>
 <bec48601-f6b4-6b8a-dc0d-fad47416723b@freebsd.org>
 <7f325ac2-f722-c491-fca0-2e582773e780@FreeBSD.org>
In-Reply-To: <7f325ac2-f722-c491-fca0-2e582773e780@FreeBSD.org>

--vXhEi6aPxV3tUFTUMaaSOCuc4P22q6AK9
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable

On 01.06.2016 22:36, Bryan Drewery wrote:
>>> The graph in the original commit for WITH_FAST_DEPEND disagrees.
>>> https://svnweb.freebsd.org/base?view=3Drevision&revision=3D290433
>>>
>>> We run the preprocessor once now, not twice.
>>
>> It sounds good, just implemented bad. You measure some spherical chick=
en
>> in vacuum, not what really happens. In the old times I almost never ha=
ve
>> clang libs rebuild (few files from there max when FreeBSD_version is
>> increased), but now I got them fully rebuilt with any header change.
>> That is the biggest slowdown and not what you try to measure.
>> Don't ever use 'make world'. Try to rebuild the system incrementally a=
nd
>> you'll see.
>=20
> I cannot argue with a lack of solid evidence.
>=20
> The old 'make depend' ran 'mkdep' which ran 'cc -E -M' which produces
> *the same output* as 'cc foo.c -o foo.o -MD -MF .depend.foo.o -MT
> foo.o'.  There's nothing different in the actual .depend file
> implementation/content.  Clang rebuilds often because it is changing
> often!  Just look at recent commit logs and you'll see r300984 which
> will cause a rebuild of clang.  Or r301011 which modified
> sys/sys/param.h which will rebuild just about everything.  These are
> normal and how the old system worked as well.
>=20
> There certainly are some issues with the new system.
> 1. Processing the split files can be slow over NFS
> 2. make cleandepend - will cause the next build to make a lot of guesse=
s
> and not be very efficient.
> 3. make cleandepend - There is no way to generate the .depend* files
> again without rebuilding.
> 4. It doesn't fix all of the missing dependencies that have been missin=
g
> forever such as crt, csu, libgcc, etc for static builds.
> 5. the csu builds don't use it yet but have workarounds for it
> 6. removing the 'make depend' tree-walk can hurt downstream builds whic=
h
> relied on having a multi-phase build to generate a .mk file to include
> (odd case I hit at work).  No such case exists in the upstream FreeBSD =
tree.
>=20

There are two different things: pure recursive dependency (it is how
make depends works now) and just nested include graph with dependencies
marked directly by Makefile's rules (it is how old system works). Now it
is enough to touch some low level include to rebuild everything, before
only files which include it directly or have make rules for it are rebuil=
t.




--vXhEi6aPxV3tUFTUMaaSOCuc4P22q6AK9--

--aBuSrsc44c2ATrQ49vPoHPsRXt7VuMLF9
Content-Type: application/pgp-signature; name="signature.asc"
Content-Description: OpenPGP digital signature
Content-Disposition: attachment; filename="signature.asc"

-----BEGIN PGP SIGNATURE-----

iQEcBAEBCAAGBQJXTz5MAAoJEKUckv0MjfbKLvkIANWzjZ9y8SFkskZkhchAxv1M
AuuYOsIbXJCAXFpCHQ0jBFeFNqPGNhnAj5EKOr/Gnwo5enGhSFA97QmA8pORRZCs
c296ILUvlYyC1ZRD59ax2ykVQvgfnrtw8P/Xjo5RfI++xL0fgO0HTktxZSzhhFjA
4SzhLpvheEawGseENlqXHqkn8LyF1k6rZzMC8xx6mfpP0I2WwGWQ2UNw8zzSbQl0
RFHEc98KhLInJJsL6o31YGnBqX0EEHs7qtdxn5CAHT5VcanvNujMsCNxnffGd1wm
9Mmbogq0+iPD5A+H9+U66XvAEafmjckkNpkgdxw5qvMGDbKwpqDJEp/FC7/Bm8I=
=dtcd
-----END PGP SIGNATURE-----

--aBuSrsc44c2ATrQ49vPoHPsRXt7VuMLF9--



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?b5e60be6-f491-9518-a7a9-e1fce34f3590>