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
_______________________________________________
svn-src-all@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/svn-src-all
To unsubscribe, send any mail to "svn-src-all-unsubscr...@freebsd.org"

Reply via email to