Quick test building a module cross all targets and architectures
Konstantin Belousov
kostikbel at gmail.com
Mon Oct 26 18:23:54 UTC 2015
On Mon, Oct 26, 2015 at 11:03:07AM -0700, 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
>
In any variant, this proposal sounds strange. Almost all in-kernel
code is compiled both for kernel and for modules. I am only aware of
exceptions for i915kms, which was done for a reason which is no longer
valid. In other words, if your goal is to check that the change does not
break compilation of some kernel code, then it is wrong to not compile
kernels.
Note that kernel and modules compilation environments are differrent.
More information about the freebsd-current
mailing list