svn commit: r339901 - head/sys/conf
Mark Johnston
markj at freebsd.org
Tue Oct 30 15:51:13 UTC 2018
On Tue, Oct 30, 2018 at 12:23:38AM +0000, John Baldwin wrote:
> Author: jhb
> Date: Tue Oct 30 00:23:37 2018
> New Revision: 339901
> URL: https://svnweb.freebsd.org/changeset/base/339901
>
> Log:
> Permit local kernel modules to be built as part of a kernel build.
>
> Add support for "local" modules. By default, these modules are
> located in LOCALBASE/sys/modules (where LOCALBASE defaults to
> /usr/local). Individual modules can be built along with a kernel by
> defining LOCAL_MODULES to the list of modules. Each is assumed to be
> a subdirectory containing a valid Makefile. If LOCAL_MODULES is not
> specified, all of the modules present in LOCALBASE/sys/modules are
> built and installed along with the kernel.
>
> This means that a port that installs a kernel module can choose to
> install its source along with a suitable Makefile to
> /usr/local/sys/modules/<foo>. Future kernel builds will then include
> that kernel module using the kernel configuration's opt_*.h headers
> and install it into /boot/kernel along with other kernel-specific
> modules.
>
> This is not trying to solve the issue of folks running GENERIC release
> kernels, but is instead aimed at folks who build their own kernels.
> For those folks this ensures that kernel modules from ports will
> always be using the right KBI, etc. This includes folks running any
> KBI-breaking kernel configs (such as PAE).
>
> There are still some kinks to be worked out with cross-building (we
> probably shouldn't include local modules in cross-built kernels by
> default), but this is a sufficient starting point.
>
> Reviewed by: imp
> MFC after: 3 months
> Relnotes: yes
> Differential Revision: https://reviews.freebsd.org/D16966
>
> Modified:
> head/sys/conf/kern.post.mk
>
> Modified: head/sys/conf/kern.post.mk
> ==============================================================================
> --- head/sys/conf/kern.post.mk Tue Oct 30 00:22:14 2018 (r339900)
> +++ head/sys/conf/kern.post.mk Tue Oct 30 00:23:37 2018 (r339901)
> @@ -35,24 +35,41 @@ KERN_DEBUGDIR?= ${DEBUGDIR}
>
> .MAIN: all
>
> +.if !defined(NO_MODULES)
> +# Default prefix used for modules installed from ports
> +LOCALBASE?= /usr/local
> +
> +LOCAL_MODULES_DIR?= ${LOCALBASE}/sys/modules
> +
> +# Default to installing all modules installed by ports unless overridden
> +# by the user.
> +.if !defined(LOCAL_MODULES)
> +LOCAL_MODULES!= ls ${LOCAL_MODULES_DIR}
> +.endif
> +.endif
During a buildkernel I now get several instances of:
ls: /usr/local/sys/modules: No such file or directory
make[2]: "/usr/home/markj/src/freebsd-dev/sys/conf/kern.post.mk" line 47: warning: "ls /usr/local/sys/modules" returned non-zero status
Perhaps /usr/local/sys/modules should be specified in the BSD.usr.dist
mtree file?
More information about the svn-src-head
mailing list