From owner-freebsd-current@freebsd.org Wed Jun 1 19:58:14 2016 Return-Path: Delivered-To: freebsd-current@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id D5B78B60ACF for ; Wed, 1 Jun 2016 19:58:14 +0000 (UTC) (envelope-from mailing-machine@vniz.net) Received: from mailman.ysv.freebsd.org (unknown [127.0.1.3]) by mx1.freebsd.org (Postfix) with ESMTP id B2C4B1CE5 for ; Wed, 1 Jun 2016 19:58:14 +0000 (UTC) (envelope-from mailing-machine@vniz.net) Received: by mailman.ysv.freebsd.org (Postfix) id AEBA2B60ACE; Wed, 1 Jun 2016 19:58:14 +0000 (UTC) Delivered-To: current@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id AC0C8B60ACD for ; Wed, 1 Jun 2016 19:58:14 +0000 (UTC) (envelope-from mailing-machine@vniz.net) Received: from mail-lf0-f45.google.com (mail-lf0-f45.google.com [209.85.215.45]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (Client CN "smtp.gmail.com", Issuer "Google Internet Authority G2" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 2A87F1CE2 for ; Wed, 1 Jun 2016 19:58:13 +0000 (UTC) (envelope-from mailing-machine@vniz.net) Received: by mail-lf0-f45.google.com with SMTP id s64so20222537lfe.0 for ; Wed, 01 Jun 2016 12:58:13 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:subject:to:references:from:message-id:date :user-agent:mime-version:in-reply-to; bh=Qbvcr1HOsytNvB6rHnoXtYtmK7E+2tX2SXI3B7O55uw=; b=ddt7yXalUKbTDFmbEqjJvOF+7vY5GSvWD6I0pf7f+GCPicXQ8reBtwFZhRvB1rGmO3 2+uJlCdmPOjbOB5OwRZtTgaPlPrc1tZvkFs9rWgsiXJbhbpWvWdQRjTlSMVMuIEiaGMr R5JwJiwgcgUSbjWtyOuNSplq6c9Sr02gmy6JJjRALda+CT+OAFUpqirOuOkD7L/D7Gej Vjr/JeID9+eFXv2+DK6+MzHk5WOV6soqM6bS7geTFIRgZdYL3TdR8DoK4sA2I80Q4Ce/ Sc/VOpJ914zuU1RhS4W6Rj3+JSo8Va0g7SAiZRnLmX6XDiSofL6Mx2c/VWLykm4+uxYF XfrA== X-Gm-Message-State: ALyK8tIkoXwSoYJrmhgcgxtRczB1ohpuBpNSs6AFNho7kwV3RZCCeIzOLUl0FFBDg61zmw== X-Received: by 10.25.91.211 with SMTP id p202mr2713925lfb.167.1464811085906; Wed, 01 Jun 2016 12:58:05 -0700 (PDT) Received: from [192.168.1.2] ([89.169.173.68]) by smtp.gmail.com with ESMTPSA id z63sm2662692lfa.41.2016.06.01.12.58.05 (version=TLSv1/SSLv3 cipher=OTHER); Wed, 01 Jun 2016 12:58:05 -0700 (PDT) Subject: Re: 'make depend' or 'make' bug on recent --current To: Bryan Drewery , current@freebsd.org References: <092f5e98-dae8-dbc9-2a6e-7068b972278f@freebsd.org> <311f3a82-b702-d375-170f-82ae39236ab0@FreeBSD.org> <7f325ac2-f722-c491-fca0-2e582773e780@FreeBSD.org> From: Andrey Chernov Message-ID: Date: Wed, 1 Jun 2016 22:58:04 +0300 User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:45.0) Gecko/20100101 Thunderbird/45.1.1 MIME-Version: 1.0 In-Reply-To: <7f325ac2-f722-c491-fca0-2e582773e780@FreeBSD.org> Content-Type: multipart/signed; micalg=pgp-sha256; protocol="application/pgp-signature"; boundary="aBuSrsc44c2ATrQ49vPoHPsRXt7VuMLF9" X-BeenThere: freebsd-current@freebsd.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: Discussions about the use of FreeBSD-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 01 Jun 2016 19:58:14 -0000 This is an OpenPGP/MIME signed message (RFC 4880 and 3156) --aBuSrsc44c2ATrQ49vPoHPsRXt7VuMLF9 Content-Type: multipart/mixed; boundary="vXhEi6aPxV3tUFTUMaaSOCuc4P22q6AK9" From: Andrey Chernov To: Bryan Drewery , current@freebsd.org Message-ID: 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> <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--