Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 18 Apr 2016 11:20:50 -0700
From:      Bryan Drewery <bdrewery@FreeBSD.org>
To:        Jilles Tjoelker <jilles@stack.nl>
Cc:        src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org
Subject:   Re: svn commit: r297842 - in head/gnu/lib: csu libgcc libgcov
Message-ID:  <0b5bb852-a238-ff9c-464f-704c0512d9df@FreeBSD.org>
In-Reply-To: <20160416120542.GA92656@stack.nl>
References:  <201604120245.u3C2jJfo002870@repo.freebsd.org> <20160416120542.GA92656@stack.nl>

next in thread | previous in thread | raw e-mail | index | archive | help
This is an OpenPGP/MIME signed message (RFC 4880 and 3156)
--wL8WdkWgRL8A4dCGmAUFEsrCwKM7PqoA6
Content-Type: multipart/mixed; boundary="1PKXH6qNvp7vann79oacTuEblwf6WrpTt"
From: Bryan Drewery <bdrewery@FreeBSD.org>
To: Jilles Tjoelker <jilles@stack.nl>
Cc: src-committers@freebsd.org, svn-src-all@freebsd.org,
 svn-src-head@freebsd.org
Message-ID: <0b5bb852-a238-ff9c-464f-704c0512d9df@FreeBSD.org>
Subject: Re: svn commit: r297842 - in head/gnu/lib: csu libgcc libgcov
References: <201604120245.u3C2jJfo002870@repo.freebsd.org>
 <20160416120542.GA92656@stack.nl>
In-Reply-To: <20160416120542.GA92656@stack.nl>

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

On 4/16/2016 5:05 AM, Jilles Tjoelker wrote:
> On Tue, Apr 12, 2016 at 02:45:19AM +0000, Bryan Drewery wrote:
>> Author: bdrewery
>> Date: Tue Apr 12 02:45:19 2016
>> New Revision: 297842
>> URL: https://svnweb.freebsd.org/changeset/base/297842
>=20
>> Log:
>>   META_MODE: Avoid changed build command every build.
>=20
>>   Because the file is generated with -f using another Makefile, 2
>>   different Makefiles are trying to handle the .meta file for the
>>   target.  The obvious .NOMETA_CMP or .NOMETA on the ${MAKE} targets
>>   don't work as they are very limited in scope in bmake.  Using
>>   .PHONY fixes the problem and ensures that the ${MAKE} command
>>   is always ran to check if it is outdated in the sub-make.
>=20
>>   An example of the problem in gnu/lib/libgcc (with make -dM):
>>     /usr/obj/root/git/freebsd/gnu/lib/libgcc/tm.h.meta: 2: a build com=
mand has changed
>>     TARGET_CPU_DEFAULT=3D""  HEADERS=3D"options.h i386/biarch64.h i386=
/i386.h i386/unix.h i386/att.h dbxelf.h elfos-undef.h elfos.h freebsd-nat=
ive.h freebsd-spec.h freebsd.h i386/x86-64.h i386/freebsd.h i386/freebsd6=
4.h defaults.h"  DEFINES=3D""  /bin/sh /root/git/freebsd/gnu/lib/libgcc/.=
=2E/../../contrib/gcc/mkconfig.sh tm.h
>>     vs
>>     (cd /root/git/freebsd/gnu/lib/libgcc; make -f /root/git/freebsd/gn=
u/lib/libgcc/../../usr.bin/cc/cc_tools/Makefile MFILE=3D/root/git/freebsd=
/gnu/lib/libgcc/../../usr.bin/cc/cc_tools/Makefile GCCDIR=3D/root/git/fre=
ebsd/gnu/lib/libgcc/../../../contrib/gcc tm.h)
>>     Skipping meta for tm.h: .NOMETA
>>     (cd /root/git/freebsd/gnu/lib/libgcc; make -f /root/git/freebsd/gn=
u/lib/libgcc/../../usr.bin/cc/cc_tools/Makefile MFILE=3D/root/git/freebsd=
/gnu/lib/libgcc/../../usr.bin/cc/cc_tools/Makefile GCCDIR=3D/root/git/fre=
ebsd/gnu/lib/libgcc/../../../contrib/gcc tm.h)
>>     `tm.h' is up to date.
>=20
>> Modified:
>>   head/gnu/lib/csu/Makefile
>>   head/gnu/lib/libgcc/Makefile
>>   head/gnu/lib/libgcov/Makefile
>=20
>> Modified: head/gnu/lib/csu/Makefile
>> =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D
>> --- head/gnu/lib/csu/Makefile	Tue Apr 12 02:01:16 2016	(r297841)
>> +++ head/gnu/lib/csu/Makefile	Tue Apr 12 02:45:19 2016	(r297842)
>> @@ -71,7 +71,7 @@ crtendS.o:	${ENDSRC}
>>  		-c -o ${.TARGET} ${.ALLSRC:N*.h}
>> =20
>>  CLEANFILES+=3D	tm.h tconfig.h options.h optionlist cs-tconfig.h cs-tm=
=2Eh
>> -tm.h tconfig.h options.h: ${CCDIR}/cc_tools/Makefile
>> +tm.h tconfig.h options.h: ${CCDIR}/cc_tools/Makefile .PHONY
>>  	(cd ${.CURDIR}; ${MAKE} -f ${.ALLSRC} MFILE=3D${.ALLSRC} GCCDIR=3D${=
GCCDIR} ${.TARGET})
>> =20
>>  .include <bsd.lib.mk>
>>
>> Modified: head/gnu/lib/libgcc/Makefile
>> =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D
>> --- head/gnu/lib/libgcc/Makefile	Tue Apr 12 02:01:16 2016	(r297841)
>> +++ head/gnu/lib/libgcc/Makefile	Tue Apr 12 02:45:19 2016	(r297842)
>> @@ -343,7 +343,7 @@ ${_src:R:S/$/.So/}: ${_src} ${COMMONHDRS
>>  #
>>  # Generated headers
>>  #
>> -${COMMONHDRS}: ${.CURDIR}/../../usr.bin/cc/cc_tools/Makefile
>> +${COMMONHDRS}: ${.CURDIR}/../../usr.bin/cc/cc_tools/Makefile .PHONY
>>  	(cd ${.CURDIR}; ${MAKE} -f ${.ALLSRC} MFILE=3D${.ALLSRC} GCCDIR=3D${=
GCCDIR} ${.TARGET})
>> =20
>>  CLEANFILES +=3D ${COMMONHDRS}
>>
>> Modified: head/gnu/lib/libgcov/Makefile
>> =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D
>> --- head/gnu/lib/libgcov/Makefile	Tue Apr 12 02:01:16 2016	(r297841)
>> +++ head/gnu/lib/libgcov/Makefile	Tue Apr 12 02:45:19 2016	(r297842)
>> @@ -45,7 +45,7 @@ CC_S =3D	${CC} -c ${CFLAGS} ${PICFLAG} -DS
>>  COMMONHDRS=3D	tm.h tconfig.h gcov-iov.h options.h
>>  CLEANFILES+=3D	${COMMONHDRS} cs-tm.h cs-tconfig.h options.h optionlis=
t
>> =20
>> -${COMMONHDRS}: ${.CURDIR}/../../usr.bin/cc/cc_tools/Makefile
>> +${COMMONHDRS}: ${.CURDIR}/../../usr.bin/cc/cc_tools/Makefile .PHONY
>>  	(cd ${.CURDIR}; ${MAKE} -f ${.ALLSRC} MFILE=3D${.ALLSRC} GCCDIR=3D${=
GCCDIR} ${.TARGET})
>> =20
>>  ${OBJS} beforedepend: ${COMMONHDRS}
>=20
> Unfortunately, this causes things to be built every time for
> non-metamode builds, including make installworld. I had to revert the
> gnu/lib/csu/Makefile part locally to get make installworld with a
> read-only /usr/obj to work again.
>=20

Yup, it does in META MODE as well. I failed to do an install test.

r298218 fixes it and I added an error in install if a rebuild occurs in
r298219 to help catch these earlier.

--=20
Regards,
Bryan Drewery


--1PKXH6qNvp7vann79oacTuEblwf6WrpTt--

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

iQEcBAEBAgAGBQJXFSWCAAoJEDXXcbtuRpfPQFAH/iruQH4g9JAUkQjJlg9jYFcI
8j2S34jySPteHHGTtBOFprNik4WQ6dVV8lESCQIuwSTh1TPHJa/x7hO7OqO9Q2tV
e9VLDp2mbKKC5NwWhz5hzg/UOWrlwiugvrECpjTHuruCTXMNPRsk22cv2k5V4rp6
0dFB9Tg5eji5BFmBLngKqz9kUksQpsAylza+ZQDEDzJbk3ttSMrBwTLTK8xjHnA3
eap5yq/8jFcSQKW62FoysWryhlCqqYz6YysbKpnp7+/OMYElACLLrAIfcxwlOnH4
wQ0178JNvlR6+fXDEfDRYFNw4l5I3cjtj9GDBz4ZrT5ARE269tH8C/YexwFPvyI=
=vfW8
-----END PGP SIGNATURE-----

--wL8WdkWgRL8A4dCGmAUFEsrCwKM7PqoA6--



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?0b5bb852-a238-ff9c-464f-704c0512d9df>