svn commit: r305170 - head/lib/atf/libatf-c

Brooks Davis brooks at freebsd.org
Thu Sep 1 16:54:53 UTC 2016


On Thu, Sep 01, 2016 at 02:42:11AM +0000, Ngie Cooper wrote:
> Author: ngie
> Date: Thu Sep  1 02:42:11 2016
> New Revision: 305170
> URL: https://svnweb.freebsd.org/changeset/base/305170
> 
> Log:
>   Don't bake all of CC/CPP/CXX into CFLAGS
>   
>   Capture executable names for CC, CPP, CXX (assumed to be the
>   first non-CCACHE_BIN word).
>   
>   This change strips out all of the cross-compiler arguments, (-target,
>   -B, etc), added to ${CC}, etc via ${CROSSENV} in Makefile.inc1, so it
>   doesn't infect the build and subsequently the test.
>   
>   Add comments noting why this logic is being added, and why the logic in
>   r305041 was necessary/what it was trying to achieve.
>   
>   This is required after recent changes made to the toolchain to always
>   specify --sysroot, -target, -B, etc with clang in buildworld (presumably
>   r304681).
>   
>   Reviewed by:	rodrigc (earlier version)
>   Reported by:	Jenkins (FreeBSD_HEAD job from 559+)
>   MFC after:	12 days
>   X-MFC with:	r304681, r305041
>   Sponsored by:	EMC / Isilon Storage Division
>   Differential Revision:	https://reviews.freebsd.org/D7732
> 
> Modified:
>   head/lib/atf/libatf-c/Makefile
> 
> Modified: head/lib/atf/libatf-c/Makefile
> ==============================================================================
> --- head/lib/atf/libatf-c/Makefile	Thu Sep  1 02:05:46 2016	(r305169)
> +++ head/lib/atf/libatf-c/Makefile	Thu Sep  1 02:42:11 2016	(r305170)
> @@ -28,6 +28,18 @@
>  .include <src.opts.mk>
>  .include <bsd.init.mk>
>  
> +# Store the toolchain executable in ATF_BUILD_{CC,CPP,CXX} to ensure other
> +# values -- like -target, -B ..., etc -- don't get leaked into the tests.
> +#
> +# Be sure to omit ${CCACHE_BIN} (if specified) from the variable as it gets
> +# automatically appended to the variables in bsd.compiler.mk when
> +# ${MK_CCACHE_BUILD} != no.
> +ATF_BUILD_CC:=		${CC:N${CCACHE_BIN}:[1]}
> +ATF_BUILD_CPP:=		${CPP:N${CCACHE_BIN}:[1]}
> +ATF_BUILD_CXX:=		${CXX:N${CCACHE_BIN}:[1]}
> +
> +# Only capture defines, includes, linker flags, optimization levels, warnings
> +# and preprocessor flags when building ATF_BUILD_{C,CPP,CXX}FLAGS.
>  ATF_BUILD_CFLAGS:=	${CFLAGS:M-[DILOWf]*}
>  ATF_BUILD_CPPFLAGS:=	${CPPFLAGS:M-[DILOWf]*}
>  ATF_BUILD_CXXFLAGS:=	${CXXFLAGS:M-[DILOWf]*}
> @@ -41,11 +53,11 @@ ATF=		${SRCTOP}/contrib/atf
>  .PATH:		${ATF}/atf-c
>  .PATH:		${ATF}/atf-c/detail
>  
> -CFLAGS+=	-DATF_BUILD_CC='"${CC}"'
> +CFLAGS+=	-DATF_BUILD_CC='"${ATF_BUILD_CC}"'
>  CFLAGS+=	-DATF_BUILD_CFLAGS='"${ATF_BUILD_CFLAGS}"'
> -CFLAGS+=	-DATF_BUILD_CPP='"${CPP}"'
> +CFLAGS+=	-DATF_BUILD_CPP='"${ATF_BUILD_CPP}"'
>  CFLAGS+=	-DATF_BUILD_CPPFLAGS='"${ATF_BUILD_CPPFLAGS}"'
> -CFLAGS+=	-DATF_BUILD_CXX='"${CXX}"'
> +CFLAGS+=	-DATF_BUILD_CXX='"${ATF_BUILD_CXX}"'
>  CFLAGS+=	-DATF_BUILD_CXXFLAGS='"${ATF_BUILD_CXXFLAGS}"'
>  CFLAGS+=	-I${ATF}
>  CFLAGS+=	-I${.CURDIR}
> 

Are these the variables used to control the tests that try to compile
things?

I've run into to some problems with them on CheriBSD because the
external compiler isn't available on the test target, but isn't listed
as a dependency.  These tests should declare a dependency on CC, etc
as appropriate and be skipped if it isn't there.  I'm not actually
convinced this shouldn't just use cc, cpp, and c++.  (That would be
wrong for CheriBSD, but closer to right for current cases in FreeBSD).

-- Brooks
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 455 bytes
Desc: not available
URL: <http://lists.freebsd.org/pipermail/svn-src-head/attachments/20160901/32af63c5/attachment.sig>


More information about the svn-src-head mailing list