From owner-svn-src-projects@freebsd.org Thu Aug 17 20:04:19 2017 Return-Path: Delivered-To: svn-src-projects@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 12EB8DD3A92 for ; Thu, 17 Aug 2017 20:04:19 +0000 (UTC) (envelope-from ngie@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id DDDCA2EA4; Thu, 17 Aug 2017 20:04:18 +0000 (UTC) (envelope-from ngie@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id v7HK4HEs014414; Thu, 17 Aug 2017 20:04:17 GMT (envelope-from ngie@FreeBSD.org) Received: (from ngie@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id v7HK4HRn014413; Thu, 17 Aug 2017 20:04:17 GMT (envelope-from ngie@FreeBSD.org) Message-Id: <201708172004.v7HK4HRn014413@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: ngie set sender to ngie@FreeBSD.org using -f From: Ngie Cooper Date: Thu, 17 Aug 2017 20:04:17 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org Subject: svn commit: r322629 - projects/runtime-coverage/share/mk X-SVN-Group: projects X-SVN-Commit-Author: ngie X-SVN-Commit-Paths: projects/runtime-coverage/share/mk X-SVN-Commit-Revision: 322629 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 17 Aug 2017 20:04:19 -0000 Author: ngie Date: Thu Aug 17 20:04:17 2017 New Revision: 322629 URL: https://svnweb.freebsd.org/changeset/base/322629 Log: Fix libc_pic.a In order to support coverage binaries and non-coverage binaries with libraries, separate libraries need to be created which don't have coverage symbols (and dependent symbols on libc) in them. libc_pic.a for instance will not link with binaries if it's compiled with --coverage. This allows buildworld to complete, minus rtld-elf -- it's a special snowflake that needs to be resolved with a solution that I don't yet possess. Modified: projects/runtime-coverage/share/mk/bsd.lib.mk Modified: projects/runtime-coverage/share/mk/bsd.lib.mk ============================================================================== --- projects/runtime-coverage/share/mk/bsd.lib.mk Thu Aug 17 19:39:42 2017 (r322628) +++ projects/runtime-coverage/share/mk/bsd.lib.mk Thu Aug 17 20:04:17 2017 (r322629) @@ -85,7 +85,7 @@ SHARED_CXXFLAGS+= ${_COV_FLAG} # prefer .s to a .c, add .po, remove stuff not used in the BSD libraries # .pico used for PIC object files -.SUFFIXES: .out .o .bc .ll .po .pico .S .asm .s .c .cc .cpp .cxx .C .f .y .l .ln +.SUFFIXES: .out .o .bc .ll .po .pico .ppico .S .asm .s .c .cc .cpp .cxx .C .f .y .l .ln .if !defined(PICFLAG) .if ${MACHINE_CPUARCH} == "sparc64" @@ -105,21 +105,28 @@ PO_FLAG=-pg ${CC} ${PICFLAG} -DPIC ${SHARED_CFLAGS} ${CFLAGS} -c ${.IMPSRC} -o ${.TARGET} ${CTFCONVERT_CMD} +.c.ppico: + ${CC} ${PICFLAG} -DPIC ${SHARED_CFLAGS:N${_COV_FLAG}} ${CFLAGS} -c ${.IMPSRC} -o ${.TARGET} + ${CTFCONVERT_CMD} + .cc.po .C.po .cpp.po .cxx.po: ${CXX} ${PO_FLAG} ${STATIC_CXXFLAGS} ${PO_CXXFLAGS} -c ${.IMPSRC} -o ${.TARGET} .cc.pico .C.pico .cpp.pico .cxx.pico: ${CXX} ${PICFLAG} -DPIC ${SHARED_CXXFLAGS} ${CXXFLAGS} -c ${.IMPSRC} -o ${.TARGET} +.cc.ppico .C.ppico .cpp.ppico .cxx.ppico: + ${CXX} ${PICFLAG} -DPIC ${SHARED_CXXFLAGS:N${_COV_FLAG}} ${CXXFLAGS} -c ${.IMPSRC} -o ${.TARGET} + .f.po: ${FC} -pg ${FFLAGS} -o ${.TARGET} -c ${.IMPSRC} ${CTFCONVERT_CMD} -.f.pico: +.f.pico .f.ppico: ${FC} ${PICFLAG} -DPIC ${FFLAGS} -o ${.TARGET} -c ${.IMPSRC} ${CTFCONVERT_CMD} -.s.po .s.pico: +.s.po .s.pico .s.ppico: ${AS} ${AFLAGS} -o ${.TARGET} ${.IMPSRC} ${CTFCONVERT_CMD} @@ -133,12 +140,17 @@ PO_FLAG=-pg ${CFLAGS} ${ACFLAGS} -c ${.IMPSRC} -o ${.TARGET} ${CTFCONVERT_CMD} +.asm.ppico: + ${CC:N${CCACHE_BIN}} -x assembler-with-cpp ${PICFLAG} -DPIC \ + ${CFLAGS:N${_COV_FLAG}} ${ACFLAGS} -c ${.IMPSRC} -o ${.TARGET} + ${CTFCONVERT_CMD} + .S.po: ${CC:N${CCACHE_BIN}} -DPROF ${PO_CFLAGS} ${ACFLAGS} -c ${.IMPSRC} \ -o ${.TARGET} ${CTFCONVERT_CMD} -.S.pico: +.S.pico .S.ppico: ${CC:N${CCACHE_BIN}} ${PICFLAG} -DPIC ${CFLAGS} ${ACFLAGS} \ -c ${.IMPSRC} -o ${.TARGET} ${CTFCONVERT_CMD} @@ -229,7 +241,12 @@ lib${LIB_PRIVATE}${LIB}.ll: ${LLOBJS} SOBJS+= ${OBJS:.o=.pico} DEPENDOBJS+= ${SOBJS} CLEANFILES+= ${SOBJS} +.if defined(INSTALL_PIC_ARCHIVE) && ${MK_COVERAGE} != "no" +SPOBJS:= ${SOBJS:.pico=.ppico} +DEPENDOBJS+= ${SPOBJS} +CLEANFILES+= ${SPOBJS} .endif +.endif .if defined(SHLIB_NAME) _LIBS+= ${SHLIB_NAME} @@ -246,7 +263,7 @@ SOLINKOPTS+= -Wl,--fatal-warnings SOLINKOPTS+= -Wl,--warn-shared-textrel .if target(beforelinking) -beforelinking: ${SOBJS} +beforelinking: ${SOBJS} ${SPOBJS} ${SHLIB_NAME_FULL}: beforelinking .endif @@ -294,10 +311,10 @@ ${SHLIB_NAME}.debug: ${SHLIB_NAME_FULL} .if defined(INSTALL_PIC_ARCHIVE) && defined(LIB) && !empty(LIB) && ${MK_TOOLCHAIN} != "no" _LIBS+= lib${LIB_PRIVATE}${LIB}_pic.a -lib${LIB_PRIVATE}${LIB}_pic.a: ${SOBJS} +lib${LIB_PRIVATE}${LIB}_pic.a: ${SPOBJS} @${ECHO} building special pic ${LIB} library @rm -f ${.TARGET} - ${AR} ${ARFLAGS} ${.TARGET} ${SOBJS} ${ARADD} + ${AR} ${ARFLAGS} ${.TARGET} ${SPOBJS} ${ARADD} ${RANLIB} ${RANLIBFLAGS} ${.TARGET} .endif @@ -466,6 +483,7 @@ OBJS_DEPEND_GUESS.${_S:R}.po+= ${_S} defined(INSTALL_PIC_ARCHIVE) && defined(LIB) && !empty(LIB) .for _S in ${SRCS:N*.[hly]} OBJS_DEPEND_GUESS.${_S:R}.pico+= ${_S} +OBJS_DEPEND_GUESS.${_S:R}.ppico+= ${_S} .endfor .endif