Date: Tue, 14 Jun 2016 08:53:55 -0700 From: Bryan Drewery <bdrewery@FreeBSD.org> To: "Simon J. Gerraty" <sjg@juniper.net> Cc: Mark Millard <markmi@dsl-only.net>, FreeBSD Current <freebsd-current@freebsd.org> Subject: Re: 11.0 -r301815 to -r310873 using WITH_META_MODE=yes : an empty filename failure Message-ID: <8a51b170-5f6c-4a86-bc08-e960c19b7f2f@FreeBSD.org> In-Reply-To: <57295.1465874334@kaos.jnpr.net> References: <85435AE2-3F2C-4330-9751-729D99716A8C@dsl-only.net> <65e079c5-6b69-1b94-6bc8-ee32269cc98c@FreeBSD.org> <57295.1465874334@kaos.jnpr.net>
next in thread | previous in thread | raw e-mail | index | archive | help
This is an OpenPGP/MIME signed message (RFC 4880 and 3156) --mfxUhjmCtxdOtxbpc4w2I36ORT8p4vol5 Content-Type: multipart/mixed; boundary="WgkO3vx5mNCiWv0sf1S0OiO4k22EwNqIR" From: Bryan Drewery <bdrewery@FreeBSD.org> To: "Simon J. Gerraty" <sjg@juniper.net> Cc: Mark Millard <markmi@dsl-only.net>, FreeBSD Current <freebsd-current@freebsd.org> Message-ID: <8a51b170-5f6c-4a86-bc08-e960c19b7f2f@FreeBSD.org> Subject: Re: 11.0 -r301815 to -r310873 using WITH_META_MODE=yes : an empty filename failure References: <85435AE2-3F2C-4330-9751-729D99716A8C@dsl-only.net> <65e079c5-6b69-1b94-6bc8-ee32269cc98c@FreeBSD.org> <57295.1465874334@kaos.jnpr.net> In-Reply-To: <57295.1465874334@kaos.jnpr.net> --WgkO3vx5mNCiWv0sf1S0OiO4k22EwNqIR Content-Type: text/plain; charset=windows-1252 Content-Transfer-Encoding: quoted-printable On 6/13/2016 8:18 PM, Simon J. Gerraty wrote: > Bryan Drewery <bdrewery@freebsd.org> wrote: >>>> ${_FIRM}: ${.CURDIR}/../../../../contrib/dev/drm2/radeonkmsfw/${_FIR= M}.uu >>>> uudecode -p $? > ${.TARGET} > Targets like this that use $? or ${.OODATE} are a bad fit with META mod= e. >=20 > If the normal make rules think the target is up to date, .OODATE will b= e > empty, thus if meta_oodate says the target is out-of-date, the script > will run with no args - because $? expands to nothing. >=20 > So either the use of $? should be replaced with ${.ALLSRC} or something= > else that will be consistent, or the target should be marked .NOMETA I think my point is getting lost. With the new missing-meta feature, if a target uses .OODATE and has no .meta file then it is forced to run *Even if no targets are out-of-date* and yields an empty result. Yet, via meta_oodate, if there is already a .meta file and .OODATE is used and has an empty source list then $.OODATE is forced to be .ALLSRC: > if (oodate && needOODATE) { =20 > /* =20 > * Target uses .OODATE which is empty; or we wouldn't be here. =20 > * We have decided it is oodate, so .OODATE needs to be set. =20 > * All we can sanely do is set it to .ALLSRC. =20 > */ =20 > Var_Delete(OODATE, gn); =20 > Var_Set(OODATE, Var_Value(ALLSRC, gn, &cp), gn, 0); =20 > free(cp); =20 > } =20 What's missing is setting of needOODATE in the metaMissing case so that it auto applies the .OODATE=3D.ALLSRC hack/fixup which is what you're suggesting as well. I don't think it is right to force manually adding .NOMETA to all =2EOODATE usages since there's already logic to handle .OODATE in the =2Emeta existing case. --=20 Regards, Bryan Drewery --WgkO3vx5mNCiWv0sf1S0OiO4k22EwNqIR-- --mfxUhjmCtxdOtxbpc4w2I36ORT8p4vol5 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 iQEcBAEBAgAGBQJXYCiTAAoJEDXXcbtuRpfPVTcH/3tzh+wmlNGxkZqkODsVfpFi yyeMgZDAiPpicTx5ecJXgRKn6jwLylVYYOPUZEEvP3Lloe3Eg/0KH1Nyfu73SI9d ZhlPF5AsEr2FGj/bxbX7RLCZVU1H6t6WHGrlxPeOFPDnE+KfRQcQ0DNK0ioSUzrt fXBNhD3WZ7EPp9iypkuEfw5pkDDzWQBWCZNwoBnNDS4WDy0+L0K5EN+UqxrUJdiT mmlDY/nzCps1mgCGVJWggTGpDOQMU1tPzj8y4xDMVZA9CqES7rir+JT2Bi4qV8cd ZtpysYwQkLUitM37XB+IStlRFi3nDoU0h/Xoi3khEYGMEBvmg6Sl59Axz91ogz0= =K1zi -----END PGP SIGNATURE----- --mfxUhjmCtxdOtxbpc4w2I36ORT8p4vol5--
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?8a51b170-5f6c-4a86-bc08-e960c19b7f2f>