Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 3 Jun 2013 16:25:56 -0700
From:      "Simon J. Gerraty" <sjg@juniper.net>
To:        Navdeep Parhar <nparhar@gmail.com>
Cc:        freebsd-hackers@freebsd.org, sjg@juniper.net
Subject:   Re: UNIVERSE_TARGET doesn't seem to work
Message-ID:  <20130603232556.B196958097@chaos.jnpr.net>
In-Reply-To: <51AD0702.2060802@gmail.com>
References:  <20130531014320.GA22257@itx> <51AD0702.2060802@gmail.com>

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

On Mon, 3 Jun 2013 14:13:38 -0700, Navdeep Parhar writes:
>On 05/30/13 18:43, Navdeep Parhar wrote:
>> I build kernel-toolchain and MAKE_JUST_KERNELS (often with NO_CLEAN, but
>> not this time) as part of my pre-commit checklist.  It doesn't seem to
>> work after the switch to bmake.  What am I missing?  This on a system
>> at r251171 with nothing in make.conf or src.conf:
>> 
>> # make -j12 universe UNIVERSE_TARGET=kernel-toolchain
>> --- universe_prologue ---

So not so much conflicting dependencies, but bmake seems to not like 
.ORDER and explicit dependencies that effectively say the same thing.
That is since there is an explicit dependency:

universe_${target}: universe_${target}_prologue

it shouldn't be necessary to also express that in the .ORDER
This is probably a bug, but identifying exactly where and a fix could
take a while.

Moving the .ORDER out of the loop like:

@@ -373,9 +373,10 @@
 .if defined(DOING_TINDERBOX)
 	@rm -f ${FAILFILE}
 .endif
+.ORDER: universe_prologue upgrade_checks universe_targets universe_epilogue
 .for target in ${TARGETS}
 universe: universe_${target}
-.ORDER: universe_prologue upgrade_checks universe_${target}_prologue universe_${target} universe_epilogue
+universe_targets: universe_${target}
 universe_${target}: universe_${target}_prologue
 universe_${target}_prologue:
 	@echo ">> ${target} started on `LC_ALL=C date`"

would seem to make sense, but fmake runs universe_epilogue too early
(which is also a bug).

Thus the simplest patch which avoids an error and works for both
bmake and fmake is:

Index: Makefile
===================================================================
--- Makefile	(revision 250971)
+++ Makefile	(working copy)
@@ -375,7 +375,7 @@
 .endif
 .for target in ${TARGETS}
 universe: universe_${target}
-.ORDER: universe_prologue upgrade_checks universe_${target}_prologue universe_${target} universe_epilogue
+.ORDER: universe_prologue upgrade_checks universe_${target} universe_epilogue
 universe_${target}: universe_${target}_prologue
 universe_${target}_prologue:
 	@echo ">> ${target} started on `LC_ALL=C date`"





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