Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 10 Oct 2017 06:20:33 +0000 (UTC)
From:      Ngie Cooper <ngie@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-projects@freebsd.org
Subject:   svn commit: r324481 - projects/runtime-coverage
Message-ID:  <201710100620.v9A6KXLU012637@repo.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: ngie
Date: Tue Oct 10 06:20:33 2017
New Revision: 324481
URL: https://svnweb.freebsd.org/changeset/base/324481

Log:
  Building libprofile-rt in cross-tools unfortunately doesn't work
  
  When built with cross-tools, it builds for the host architecture. We want the
  target architecture instead.
  
  Move the libraries to _prebuild_libs instead so they get built along with
  libssp_nonshared, etc (libraries that don't rely on --coverage being baked into
  them because NO_PIC is set).

Modified:
  projects/runtime-coverage/Makefile.inc1

Modified: projects/runtime-coverage/Makefile.inc1
==============================================================================
--- projects/runtime-coverage/Makefile.inc1	Tue Oct 10 06:12:07 2017	(r324480)
+++ projects/runtime-coverage/Makefile.inc1	Tue Oct 10 06:20:33 2017	(r324481)
@@ -557,8 +557,7 @@ TMAKE=		MAKEOBJDIRPREFIX=${OBJTREE} \
 
 # cross-tools stage
 XMAKE=		TOOLS_PREFIX=${WORLDTMP} ${BMAKE} \
-		TARGET=${TARGET} TARGET_ARCH=${TARGET_ARCH} \
-		MK_COVERAGE_SUPPORT=${MK_COVERAGE} MK_GDB=no \
+		TARGET=${TARGET} TARGET_ARCH=${TARGET_ARCH} MK_GDB=no \
 		MK_LLD_IS_LD=${MK_LLD_BOOTSTRAP} MK_TESTS=no
 
 # kernel-tools stage
@@ -2080,12 +2079,6 @@ _lld=		usr.bin/clang/lld
 .if ${MK_CLANG_BOOTSTRAP} != "no" || ${MK_LLD_BOOTSTRAP} != "no"
 _clang_libs=	lib/clang
 .endif
-
-.if ${MK_COVERAGE_SUPPORT} != "no"
-_coverage_libs.${MK_CLANG}+=	lib/libclang_rt/profile
-_coverage_lib.${MK_GCC}+=	gnu/lib/libgcov
-.endif
-
 .if ${MK_GCC_BOOTSTRAP} != "no"
 _gcc=		gnu/usr.bin/cc
 .endif
@@ -2097,7 +2090,6 @@ cross-tools: .MAKE .PHONY
 .for _tool in \
     ${LOCAL_XTOOL_DIRS} \
     ${_clang_libs} \
-    ${_coverage_libs.yes} \
     ${_clang} \
     ${_lld} \
     ${_binutils} \
@@ -2251,6 +2243,16 @@ _prereq_libs= lib/libcompiler_rt
 .if ${MK_SSP} != "no"
 _prereq_libs+= gnu/lib/libssp/libssp_nonshared
 .endif
+
+#
+# The coverage libraries must be built for the target prior to ${_startup_libs}
+# in order for them to have runtime coverage instrumentation.
+#
+.if ${MK_COVERAGE} != "no"
+_coverage_libs.${MK_CLANG}+=	lib/libclang_rt/profile
+_coverage_lib.${MK_GCC}+=	gnu/lib/libgcov
+.endif
+_prereq_libs+=	${_coverage_libs.yes}
 
 # These dependencies are not automatically generated:
 #



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201710100620.v9A6KXLU012637>