svn commit: r346738 - projects/runtime-coverage-v2
Enji Cooper
ngie at FreeBSD.org
Fri Apr 26 11:29:01 UTC 2019
Author: ngie
Date: Fri Apr 26 11:28:59 2019
New Revision: 346738
URL: https://svnweb.freebsd.org/changeset/base/346738
Log:
Make --coverage work by building the coverage libraries for the toolchain prior to building the rest of the libraries
Geez louise this took a long time to get to this point. Sometimes the hammer solution is best ;).
Modified:
projects/runtime-coverage-v2/Makefile.inc1
Modified: projects/runtime-coverage-v2/Makefile.inc1
==============================================================================
--- projects/runtime-coverage-v2/Makefile.inc1 Fri Apr 26 11:12:51 2019 (r346737)
+++ projects/runtime-coverage-v2/Makefile.inc1 Fri Apr 26 11:28:59 2019 (r346738)
@@ -722,7 +722,7 @@ TMAKE= \
XMAKE= ${BMAKE} \
TARGET=${TARGET} TARGET_ARCH=${TARGET_ARCH} \
MK_GDB=no \
- MK_TESTS=no MK_COVERAGE=no MK_COVERAGE_SUPPORT=${MK_COVERAGE}
+ MK_TESTS=no MK_COVERAGE=no
# kernel-tools stage
KTMAKEENV= INSTALL="sh ${.CURDIR}/tools/install.sh" \
@@ -2466,9 +2466,6 @@ _elftctools= lib/libelftc \
.endif
.if ${MK_CLANG_BOOTSTRAP} != "no"
-.if ${MK_COVERAGE_SUPPORT} != "no"
-_coverage_libs+= lib/libclang_rt/profile
-.endif
_clang= usr.bin/clang
.endif
.if ${MK_LLD_BOOTSTRAP} != "no"
@@ -2507,16 +2504,6 @@ cross-tools: .MAKE .PHONY
${MAKE} DIRPRFX=${_tool}/ all; \
${MAKE} DIRPRFX=${_tool}/ DESTDIR=${WORLDTMP} install
.endfor
- # Build coverage libraries for the target. This must be done here in
- # order for the cross-toolchain to be able to find them with
- # `make libraries` and the rest of buildworld.
-.for _tool in ${_coverage_libs}
- ${_+_}@${ECHODIR} "===> ${_tool} (obj,all,install)"; \
- cd ${.CURDIR}/${_tool}; \
- if [ -z "${NO_OBJWALK}" ]; then ${MAKE} DIRPRFX=${_tool}/ obj; fi; \
- ${CROSSENV} ${MAKE} DIRPRFX=${_tool}/ all; \
- ${CROSSENV} ${MAKE} DIRPRFX=${_tool}/ DESTDIR=${WORLDTMP} install
-.endfor
#
# native-xtools is the current target for qemu-user cross builds of ports
@@ -2720,10 +2707,31 @@ hierarchy hier: .MAKE .PHONY
#
libraries: .MAKE .PHONY
${_+_}cd ${.CURDIR}; \
+ ${MAKE} -f Makefile.inc1 _target_toolchain_libs MK_COVERAGE=no \
+ MK_COVERAGE_SUPPORT=${MK_COVERAGE}; \
${MAKE} -f Makefile.inc1 _prereq_libs; \
${MAKE} -f Makefile.inc1 _startup_libs; \
${MAKE} -f Makefile.inc1 _prebuild_libs; \
${MAKE} -f Makefile.inc1 _generic_libs
+
+# Build coverage libraries for the target. This must be done here in
+# order for the cross-toolchain to be able to find them with
+# `make libraries` and the rest of buildworld.
+.if ${MK_CLANG_BOOTSTRAP} != "no"
+.if ${MK_COVERAGE_SUPPORT} != "no"
+_coverage_libs+= lib/libclang_rt/profile
+.endif
+.endif
+
+_target_toolchain_libs: .PHONY .MAKE
+.for _tool in \
+ ${_coverage_libs}
+ ${_+_}@${ECHODIR} "===> ${_tool} (obj,all,install)"; \
+ cd ${.CURDIR}/${_tool}; \
+ if [ -z "${NO_OBJWALK}" ]; then ${MAKE} DIRPRFX=${_tool}/ obj; fi; \
+ ${MAKE} DIRPRFX=${_tool}/ all; \
+ ${MAKE} DIRPRFX=${_tool}/ DESTDIR=${WORLDTMP} install
+.endfor
#
# static libgcc.a prerequisite for shared libc
More information about the svn-src-projects
mailing list