Re: Quick test building a module cross all targets and architectures

From: Hans Petter Selasky <hps_at_selasky.org>
Date: Tue, 27 Oct 2015 14:00:39 +0100
On 10/27/15 13:16, Konstantin Belousov wrote:
> On Tue, Oct 27, 2015 at 10:31:26AM +0100, Hans Petter Selasky wrote:
>> I understand that the compilation environments are different.
>>
>> How would you suggest to build-test a handful of C-files under a single
>> device keyword and associated kernel module cross all kernels we have in
>> a 10-minutes time-frame? MODULES_OVERRIDE can be defined from within
>> kernel configs aswell, so possibly a MODULES_OVERRIDE_OVERRIDE is needed
>> for this kind of feature. How about some kind of KERNCONF_APPEND=
>> parameter, which contains instructions for "config" to only emit a
>> single device keyword, yet, keeping all options and parameters.
>
> Did you tried to pass
> -DNO_CLEAN -DNO_KERNELCLEAN -DNO_KERNELCONFIG -DNO_KERNELDEPEND -DNO_KERNELOBJ
> options for make universe over the already built tree ?
>
> When I develop, I use
> make buildkernel -DNO_KERNELCLEAN -DNO_KERNELCONFIG -DNO_KERNELDEPEND -DNO_KERNELOBJ
> unless I change config, or add a file, or add a module etc. This
> combination gives me seconds for whole kernel and modules rebuild time
> when I know that the build metadata, i.e. files participating in the
> build, and the build options, did not changed from the latest full
> rebuild.
>
> I think that a similar trick should work with make universe, it might be
> somewhat more involved to properly pass the directions, may be not. But
> it should give the build time in the range of tens of minutes, indeed.

Hi Konstantin,

You will need an initial complete universe build which compiles to be 
able to use these options.

Not all C-files have a dependency rule, possibly due to a lack of 
functionality in "config". I've burnt a few times with -DNO_CLEAN in the 
past because of "no-depend" keywords in sys/conf/files .

In other words:
> make buildkernel -DNO_KERNELCLEAN -DNO_KERNELCONFIG -DNO_KERNELDEPEND -DNO_KERNELOBJ

Is not the same like:
> make buildkernel

And especially before commit.

The most promising in this thread so far is:
> make tinderbox MAKE_JUST_WORLDS=yes SUBDIR_OVERRIDE=sys/modules MODULES_OVERRIDE=foo

--HPS
Received on Tue Oct 27 2015 - 11:58:57 UTC

This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:41:00 UTC