From owner-freebsd-current@freebsd.org Tue Oct 27 16:07:01 2015 Return-Path: Delivered-To: freebsd-current@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 E27A9A1EBE1 for ; Tue, 27 Oct 2015 16:07:01 +0000 (UTC) (envelope-from jhb@freebsd.org) Received: from bigwig.baldwin.cx (bigwig.baldwin.cx [IPv6:2001:470:1f11:75::1]) (using TLSv1 with cipher DHE-RSA-CAMELLIA256-SHA (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id C0761142F for ; Tue, 27 Oct 2015 16:07:01 +0000 (UTC) (envelope-from jhb@freebsd.org) Received: from ralph.baldwin.cx (c-73-231-226-104.hsd1.ca.comcast.net [73.231.226.104]) by bigwig.baldwin.cx (Postfix) with ESMTPSA id DEA6FB91E; Tue, 27 Oct 2015 12:06:59 -0400 (EDT) From: John Baldwin To: Hans Petter Selasky Cc: freebsd-current@freebsd.org Subject: Re: Quick test building a module cross all targets and architectures Date: Tue, 27 Oct 2015 08:49:09 -0700 Message-ID: <4276722.e5fJFDHm8P@ralph.baldwin.cx> User-Agent: KMail/4.14.3 (FreeBSD/10.2-PRERELEASE; KDE/4.14.3; amd64; ; ) In-Reply-To: <562F3EA1.9020708@selasky.org> References: <562DEE4F.5010203@selasky.org> <5888922.UHSgpdyTWY@ralph.baldwin.cx> <562F3EA1.9020708@selasky.org> MIME-Version: 1.0 Content-Transfer-Encoding: 7Bit Content-Type: text/plain; charset="us-ascii" X-Greylist: Sender succeeded SMTP AUTH, not delayed by milter-greylist-4.2.7 (bigwig.baldwin.cx); Tue, 27 Oct 2015 12:07:00 -0400 (EDT) X-BeenThere: freebsd-current@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: Discussions about the use of FreeBSD-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 27 Oct 2015 16:07:02 -0000 On Tuesday, October 27, 2015 10:06:41 AM Hans Petter Selasky wrote: > On 10/26/15 19:03, John Baldwin wrote: > > On Monday, October 26, 2015 10:11:43 AM Hans Petter Selasky wrote: > >> Hi, > >> > >> We have NO_MODULES for building kernel without modules, but no NO_KERNEL > >> to only build the modules. > >> > >> What do you think about the following patch: > >> > >>> diff --git a/sys/conf/kern.post.mk b/sys/conf/kern.post.mk > >>> index ddf828e..f0920df 100644 > >>> --- a/sys/conf/kern.post.mk > >>> +++ b/sys/conf/kern.post.mk > >>> @@ -32,7 +32,11 @@ KERN_DEBUGDIR?= ${DEBUGDIR} > >>> > >>> .for target in all clean cleandepend cleandir clobber depend install \ > >>> obj reinstall tags > >>> +.if !defined(NO_KERNEL) > >>> ${target}: kernel-${target} > >>> +.else > >>> +${target}: > >>> +.endif > >>> .if !defined(MODULES_WITH_WORLD) && !defined(NO_MODULES) && exists($S/modules) > >>> ${target}: modules-${target} > >>> modules-${target}: > >> > >> It allows only a single module with MODULES_OVERRIDE= and NO_KERNEL=YES > >> to be built with universe in very little time. This can save a lot of > >> build time when changes are limited to a set of kernel modules. > > > > Can you just use something like MODULES_WITH_WORLD instead? > > > > make tinderbox MAKE_JUST_WORLDS=yes SUBDIR_OVERRIDE=sys/modules MODULES_OVERRIDE=foo > > > > (If it's only 1 module directory you can probably just use SUBDIR_OVERRIDE directly?) > > > > make tinderbox MAKE_JUST_WORLDS=yes SUBDIR_OVERRIDE=sys/modules/foo > > > > Hi John, > > The command you suggested will re-build all the cross-tools, which is > not what I want. NO_CLEAN=yes? You have to build all the compilers no matter what, and for incremental builds once you have NO_CLEAN=yes you only have to build it once. Having a NO_KERNEL for buildkernel just seems rather obscure. You still have to have a config file (even if it's the implicit GENERIC). Also, with your change, you will still build the module umpteen times (once for each kernel, so about 80 times on arm, etc.). With MAKE_JUST_WORLDS you would only build a "generic" module once per architecture. That savings is likely far more than the cost of the additional tools. -- John Baldwin