Date: Wed, 31 Oct 2018 10:45:28 +0000 (UTC) From: Alex Richardson <arichardson@FreeBSD.org> To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r339946 - in head: . share/mk Message-ID: <201810311045.w9VAjSs7012968@repo.freebsd.org>
next in thread | raw e-mail | index | archive | help
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 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>__)
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201810311045.w9VAjSs7012968>