svn commit: r339946 - in head: . share/mk
Bryan Drewery
bdrewery at FreeBSD.org
Mon Nov 5 22:59:52 UTC 2018
On 10/31/2018 3:45 AM, Alex Richardson wrote:
> Author: arichardson
> Date: Wed Oct 31 10:45:28 2018
> New Revision: 339946
> URL: https://svnweb.freebsd.org/changeset/base/339946
>
> Log:
> Don't run cc --version during cleandir/obj stages
>
I haven't had a chance to look at this fully or r339636 but I don't
think this change, r339946, is complete. There's far more tree-walks
than these named ones that should not be running cc.
> This will no work when there is no cc in $PATH (which is the case before the
> cross-tools stage once we no longer inherit $PATH in $WMAKE).
> The variables set by bsd.compiler.mk/bsd.linker.mk are not needed in these
> stages so this avoids a little bit of makefile parsing.
>
> Reviewed By: emaste
> Approved By: jhb (mentor)
> Differential Revision: https://reviews.freebsd.org/D16814
>
> Modified:
> head/Makefile.inc1
> head/share/mk/bsd.compiler.mk
>
> Modified: head/Makefile.inc1
> ==============================================================================
> --- head/Makefile.inc1 Wed Oct 31 10:30:19 2018 (r339945)
> +++ head/Makefile.inc1 Wed Oct 31 10:45:28 2018 (r339946)
> @@ -950,7 +950,7 @@ _worldtmp: .PHONY
> .else
> ${_+_}@if [ -e "${WORLDTMP}" ]; then \
> echo ">>> Deleting stale files in build tree..."; \
> - cd ${.CURDIR}; ${WMAKE} -DBATCH_DELETE_OLD_FILES \
> + cd ${.CURDIR}; ${WMAKE} -DBATCH_DELETE_OLD_FILES _NO_INCLUDE_COMPILERMK=t \
> delete-old delete-old-libs >/dev/null; \
> fi
> rm -rf ${WORLDTMP}/legacy/usr/include
> @@ -1003,19 +1003,21 @@ _cleanobj:
> @echo "--------------------------------------------------------------"
> @echo ">>> stage 2.1: cleaning up the object tree"
> @echo "--------------------------------------------------------------"
> - ${_+_}cd ${.CURDIR}; ${WMAKE} ${CLEANDIR}
> + # Avoid including bsd.compiler.mk in clean and obj with _NO_INCLUDE_COMPILERMK
> + # since the restricted $PATH might not contain a valid cc binary
> + ${_+_}cd ${.CURDIR}; ${WMAKE} _NO_INCLUDE_COMPILERMK=t ${CLEANDIR}
> .if defined(LIBCOMPAT)
> - ${_+_}cd ${.CURDIR}; ${LIBCOMPATWMAKE} -f Makefile.inc1 ${CLEANDIR}
> + ${_+_}cd ${.CURDIR}; ${LIBCOMPATWMAKE} _NO_INCLUDE_COMPILERMK=t -f Makefile.inc1 ${CLEANDIR}
> .endif
> .else
> - ${_+_}cd ${.CURDIR}; ${WMAKE} _cleanobj_fast_depend_hack
> + ${_+_}cd ${.CURDIR}; ${WMAKE} _NO_INCLUDE_COMPILERMK=t _cleanobj_fast_depend_hack
> .endif # !defined(NO_CLEAN)
> _obj:
> @echo
> @echo "--------------------------------------------------------------"
> @echo ">>> stage 2.2: rebuilding the object tree"
> @echo "--------------------------------------------------------------"
> - ${_+_}cd ${.CURDIR}; ${WMAKE} obj
> + ${_+_}cd ${.CURDIR}; ${WMAKE} _NO_INCLUDE_COMPILERMK=t obj
> _build-tools:
> @echo
> @echo "--------------------------------------------------------------"
>
> Modified: head/share/mk/bsd.compiler.mk
> ==============================================================================
> --- head/share/mk/bsd.compiler.mk Wed Oct 31 10:30:19 2018 (r339945)
> +++ head/share/mk/bsd.compiler.mk Wed Oct 31 10:45:28 2018 (r339946)
> @@ -33,6 +33,16 @@ __<bsd.compiler.mk>__:
>
> .include <bsd.opts.mk>
>
> +.if defined(_NO_INCLUDE_COMPILERMK)
> +# If _NO_INCLUDE_COMPILERMK is set we are doing a make obj/cleandir/cleanobj
> +# and might not have a valid compiler in $PATH yet. In this case just set the
> +# variables that are expected by the other .mk files and return
> +COMPILER_TYPE=none
> +X_COMPILER_TYPE=none
> +COMPILER_VERSION=0
> +X_COMPILER_VERSION=0
> +COMPILER_FEATURES=none
> +.else
> # command = /usr/local/bin/ccache cc ...
> # wrapper = /usr/local/libexec/ccache/cc ...
> CCACHE_BUILD_TYPE?= command
> @@ -220,4 +230,5 @@ ${var}.${${X_}_cc_hash}:= ${${var}}
> .if !defined(_NO_INCLUDE_LINKERMK)
> .include <bsd.linker.mk>
> .endif
> +.endif # defined(_NO_INCLUDE_COMPILERMK)
> .endif # !target(__<bsd.compiler.mk>__)
>
--
Regards,
Bryan Drewery
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 618 bytes
Desc: OpenPGP digital signature
URL: <http://lists.freebsd.org/pipermail/svn-src-all/attachments/20181105/15b6d190/attachment.sig>
More information about the svn-src-all
mailing list