Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 1 Jun 2016 15:41:23 -0700
From:      Bryan Drewery <bdrewery@FreeBSD.org>
To:        current@freebsd.org
Cc:        "Simon J. Gerraty" <sjg@juniper.net>
Subject:   Re: [CFT] WITH_META_MODE: Working incremental build
Message-ID:  <edd66636-a38a-ab30-f411-cf68c04dc11b@FreeBSD.org>
In-Reply-To: <f487be72-861c-9780-6054-48e35ff377ae@FreeBSD.org>
References:  <e25bdb07-8a72-f955-ffb2-5d2609b9d3fe@FreeBSD.org> <20160531140608.GA24894@albert.catwhisker.org> <5c2283ef-def0-1bdd-4766-0d2a901e7580@FreeBSD.org> <abcea294-7e18-c24e-ea3b-986f1e85034d@FreeBSD.org> <fe25f23e-e666-831c-9e90-9122822f8be0@FreeBSD.org> <ff541c28-5be4-b756-85a7-4b5c3c3e4262@FreeBSD.org> <48166.1464740223@kaos.jnpr.net> <f487be72-861c-9780-6054-48e35ff377ae@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)
--PejOhvVLuQsaK2Eo1joDCcafoATF1osPX
Content-Type: multipart/mixed; boundary="SDPW3H2WIGnESJi2TDOcKxE2SEBtwfvEI"
From: Bryan Drewery <bdrewery@FreeBSD.org>
To: current@freebsd.org
Cc: "Simon J. Gerraty" <sjg@juniper.net>
Message-ID: <edd66636-a38a-ab30-f411-cf68c04dc11b@FreeBSD.org>
Subject: Re: [CFT] WITH_META_MODE: Working incremental build
References: <e25bdb07-8a72-f955-ffb2-5d2609b9d3fe@FreeBSD.org>
 <20160531140608.GA24894@albert.catwhisker.org>
 <5c2283ef-def0-1bdd-4766-0d2a901e7580@FreeBSD.org>
 <abcea294-7e18-c24e-ea3b-986f1e85034d@FreeBSD.org>
 <fe25f23e-e666-831c-9e90-9122822f8be0@FreeBSD.org>
 <ff541c28-5be4-b756-85a7-4b5c3c3e4262@FreeBSD.org>
 <48166.1464740223@kaos.jnpr.net>
 <f487be72-861c-9780-6054-48e35ff377ae@FreeBSD.org>
In-Reply-To: <f487be72-861c-9780-6054-48e35ff377ae@FreeBSD.org>

--SDPW3H2WIGnESJi2TDOcKxE2SEBtwfvEI
Content-Type: text/plain; charset=windows-1252
Content-Transfer-Encoding: quoted-printable

On 6/1/2016 10:27 AM, Bryan Drewery wrote:
> On 5/31/2016 5:17 PM, Simon J. Gerraty wrote:
>>> Another reported issue just now is that right after an installworld,
>>> everything rebuilds due to changed /bin/sh (-dM flag to make tells yo=
u
>>> why things rebuild).  I'll look into some mitigations for this.
>>
>> It is probably sufficient to just add
>>
>> .MAKE.META.IGNORE_PATHS +=3D ${__MAKE_SHELL}
>>
>=20
> Yes but I need to test it fully to see if things like rtld and
> libmap.conf, etc, get caught up in the problem too.
>=20

Yup, it's not really simple to fix.  This problem defeats the goal of
the feature too. I had not ran into this case in all of my testing since
I wasn't installing to /.

For /bin/sh it uses libc.so.7, libedit.so.7, libncursesw.so.8, rtld, and
/usr/share/locale.  We could use /rescue/sh if it exists to remove a lot
of that and still ignore __MAKE_SHELL and /usr/share/locale.

The next problem is everything else.  expr(1), awk(1), sed(1), rm(1).
There's a /rescue version for those except for awk(1).  Solving that we
could add /rescue into the default PATH for the build, or build all of
these tools in build-tools.  Though any use of them to bootstrap
building them could cause the same rebuild problem and a chain reaction
of rebuilds.

Even adding all of the build tools as static wouldn't be enough.  Any
tool that is used that is not easily changed to static still leaks in
all of rtld and dynamic libraries.  My build is running ccache which
finds that /lib/libm.so.5 is newer.

We can't just ignore /lib /usr/lib /bin, etc, because we need the
compiler tools and other obscure tools to be considered in case they do
get changes or fixes to them.  If awk(1) gets a fix it may actually
impact the build.  It's too bad bmake is only doing a simple mtime
comparison and not a content comparison like ccache does.  That wouldn't
solve much anyhow since a change to __FreeBSD_version would modify the
hash of all of the binaries.  Of course doing a content comparison means
filemon needs to calculate and store that which is not ideal.

--=20
Regards,
Bryan Drewery


--SDPW3H2WIGnESJi2TDOcKxE2SEBtwfvEI--

--PejOhvVLuQsaK2Eo1joDCcafoATF1osPX
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

iQEcBAEBAgAGBQJXT2STAAoJEDXXcbtuRpfPAoIH/10FY9A3QrIzhNaIh93JVf5M
xzA903zCsSEndc4Qay3yvae3ckdwd7HS0Mq2qbunBd/q4QLcJNZpyA+CKf8nNfoI
ZnYEXkAHHGKU9YJpiPDYOjrCfw/yoJhHWvURzMIM8XX9u99aNSiejvcQ3yplLSF8
dVVFwbIB67d1nTbtSoVYlK105TT6MTzvTiYKN7gNRfihjq+UOtDAxBBiP1ndVrO/
KwmhNtSzivBJEnSlYgLx2/KRJfr2zFtfU8I7ylDp5DDtDJvxMW+AiKyMnSu5fx6L
rT9coc73gj39aBeZvmpbkh58nSSRRwI1CCitbqWQVb8IKdAeU/kLn9Y8JXAqaas=
=U1M3
-----END PGP SIGNATURE-----

--PejOhvVLuQsaK2Eo1joDCcafoATF1osPX--



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?edd66636-a38a-ab30-f411-cf68c04dc11b>