svn commit: r339901 - head/sys/conf
John Baldwin
jhb at FreeBSD.org
Tue Oct 30 16:23:11 UTC 2018
On 10/30/18 8:55 AM, Rodney W. Grimes wrote:
>> 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
>>> +
>
> .if exists (${LOCALBASE}/sys/modules)
>>> +LOCAL_MODULES_DIR?= ${LOCALBASE}/sys/modules
> .endif
>
>>> +
>>> +# 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?
I think I prefer Rod's fix. I'll apply it in a bit.
--
John Baldwin
More information about the svn-src-head
mailing list