Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 5 Nov 2013 22:26:08 -0500
From:      Julio Merino <julio@meroh.net>
To:        Garrett Cooper <yaneurabeya@gmail.com>
Cc:        Rui Paulo <rpaulo@fnop.net>, freebsd-testing@freebsd.org
Subject:   Re: Fixing the build with TESTS
Message-ID:  <CADyfeQURZxUPGvwF%2Bd6YMxXqrxiCuk79oRCs1s6z_GrUn_Qe5g@mail.gmail.com>
In-Reply-To: <CAGHfRMDLCKvTXpYUYQWZu64qpeqATkzwH_Yc7%2BZRXSh%2BxWyiNw@mail.gmail.com>
References:  <CADyfeQW4GwhKgg4P8OWELnGWvDO8mvSjjo7Og3WMk2uxAGBGoA@mail.gmail.com> <CAGHfRMDLCKvTXpYUYQWZu64qpeqATkzwH_Yc7%2BZRXSh%2BxWyiNw@mail.gmail.com>

next in thread | previous in thread | raw e-mail | index | archive | help

[-- Attachment #1 --]
On Tue, Nov 05, 2013 at 05:52:29PM -0800, Garrett Cooper wrote:
> I fixed this on my branch some time ago. See this patch for more
> details (from http://lists.freebsd.org/pipermail/freebsd-toolchain/2013-April/000804.html
> ) : http://lists.freebsd.org/pipermail/freebsd-toolchain/attachments/20130424/c44daa61/attachment.obj
> .
>
> If you change the former patch to refer to lib/atf instead of
> lib/atf/libatf-c, things will just work too is the order is properly
> specified in lib/atf :).
>
> I've attached entire up-to-date patch set, just for simplicity.

I like your approach more.  However, it seems that your change to
bsd.own.mk could be better handled by the existing NO_* functionality,
couldn't it?

Updated the two patches and descriptions accordingly.
Please take another look!

[-- Attachment #2 --]
Add libatf-c++ to the prebuild libs.

Some tests may require C++ so we must ensure this library exists as part
of the bootstrap process or else they will fail to build.  Do this by
just depending on lib/atf as part of the bootstrap libraries instead of
using lib/atf/libatf-c.

Submitted by:	Garrett Cooper <yaneurabeya at gmail dot com>

Index: head/Makefile.inc1
===================================================================
--- head.orig/Makefile.inc1
+++ head/Makefile.inc1
@@ -1488,7 +1488,7 @@ _prebuild_libs=	${_kerberos5_lib_libasn1
 		${_kerberos5_lib_libhx509} ${_kerberos5_lib_libkrb5} \
 		${_kerberos5_lib_libroken} \
 		${_kerberos5_lib_libwind} \
-		${_lib_atf_libatf_c} \
+		${_lib_atf} \
 		lib/libbz2 ${_libcom_err} lib/libcrypt \
 		lib/libelf lib/libexpat \
 		${_lib_libgssapi} ${_lib_libipx} \
@@ -1503,7 +1503,7 @@ _prebuild_libs=	${_kerberos5_lib_libasn1
 		${_secure_lib_libssh} ${_secure_lib_libssl}
 
 .if ${MK_ATF} != "no"
-_lib_atf_libatf_c=	lib/atf/libatf-c
+_lib_atf=	lib/atf
 .endif
 
 .if ${MK_LIBTHR} != "no"

[-- Attachment #3 --]
Fix buildworld when WITH_TESTS is enabled.

The addition of the TESTS knob and its enabling of the build of tests in
lib/libcrypt/tests/ broke the build.  The reason is that we cannot descend
into tests/ subdirectories until all prerequisites have been built, which
in the case of tests may be "a lot of things" (libatf-c in this case).

Ensure that we do not walk tests/ directories during the bootstrapping of
the libraries as part of buildworld.

Submitted by:	Garrett Cooper <yaneurabeya at gmail dot com>

Index: head/Makefile.inc1
===================================================================
--- head.orig/Makefile.inc1
+++ head/Makefile.inc1
@@ -246,7 +246,7 @@ BMAKE=		MAKEOBJDIRPREFIX=${WORLDTMP} \
 		SSP_CFLAGS= \
 		-DWITHOUT_HTML -DWITHOUT_INFO -DNO_LINT -DWITHOUT_MAN \
 		-DNO_PIC -DNO_PROFILE -DNO_SHARED \
-		-DNO_CPU_CFLAGS -DNO_WARNS -DNO_CTF -DEARLY_BUILD
+		-DNO_CPU_CFLAGS -DNO_WARNS -DNO_CTF -DEARLY_BUILD -DNO_TESTS
 
 # build-tools stage
 TMAKE=		MAKEOBJDIRPREFIX=${OBJTREE} \
@@ -256,12 +256,12 @@ TMAKE=		MAKEOBJDIRPREFIX=${OBJTREE} \
 		BOOTSTRAPPING=${OSRELDATE} \
 		SSP_CFLAGS= \
 		-DNO_LINT \
-		-DNO_CPU_CFLAGS -DNO_WARNS -DNO_CTF -DEARLY_BUILD
+		-DNO_CPU_CFLAGS -DNO_WARNS -DNO_CTF -DEARLY_BUILD -DNO_TESTS
 
 # cross-tools stage
 XMAKE=		TOOLS_PREFIX=${WORLDTMP} ${BMAKE} \
 		TARGET=${TARGET} TARGET_ARCH=${TARGET_ARCH} \
-		-DWITHOUT_GDB
+		-DWITHOUT_GDB -DNO_TESTS
 
 # world stage
 WMAKEENV=	${CROSSENV} \
@@ -399,7 +399,8 @@ LIB32WMAKEFLAGS+=	\
 		-DLIBRARIES_ONLY \
 		-DNO_CPU_CFLAGS \
 		-DNO_CTF \
-		-DNO_LINT
+		-DNO_LINT \
+		-DNO_TESTS
 
 LIB32WMAKE=	${LIB32WMAKEENV} ${MAKE} ${LIB32WMAKEFLAGS} \
 		-DWITHOUT_MAN -DWITHOUT_INFO -DWITHOUT_HTML
@@ -563,7 +564,7 @@ _libraries:
 	@echo "--------------------------------------------------------------"
 	${_+_}cd ${.CURDIR}; \
 	    ${WMAKE} -DNO_FSCHG -DWITHOUT_HTML -DWITHOUT_INFO -DNO_LINT \
-	    -DWITHOUT_MAN -DNO_PROFILE libraries
+	    -DWITHOUT_MAN -DNO_PROFILE -DNO_TESTS libraries
 _depend:
 	@echo
 	@echo "--------------------------------------------------------------"
@@ -1866,7 +1867,7 @@ XDEV_CPUTYPE?=${TARGET_CPUTYPE}
 
 NOFUN=-DNO_FSCHG -DWITHOUT_HTML -DWITHOUT_INFO -DNO_LINT \
 	-DWITHOUT_MAN -DWITHOUT_NLS -DNO_PROFILE \
-	-DWITHOUT_KERBEROS -DWITHOUT_RESCUE -DNO_WARNS \
+	-DWITHOUT_KERBEROS -DWITHOUT_RESCUE -DNO_TESTS -DNO_WARNS \
 	TARGET=${XDEV} TARGET_ARCH=${XDEV_ARCH} \
 	CPUTYPE=${XDEV_CPUTYPE}
 
Index: head/share/mk/bsd.own.mk
===================================================================
--- head.orig/share/mk/bsd.own.mk
+++ head/share/mk/bsd.own.mk
@@ -227,7 +227,8 @@ COMPRESS_EXT?=	.gz
     DEBUG_FILES \
     INSTALLLIB \
     MAN \
-    PROFILE
+    PROFILE \
+    TESTS
 .if defined(NO_${var})
 .if defined(WITH_${var})
 .undef WITH_${var}

Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?CADyfeQURZxUPGvwF%2Bd6YMxXqrxiCuk79oRCs1s6z_GrUn_Qe5g>