svn commit: r291744 - in head/sys: conf modules
John Baldwin
jhb at freebsd.org
Fri Dec 4 17:51:18 UTC 2015
On Friday, December 04, 2015 04:27:21 AM Bryan Drewery wrote:
> Author: bdrewery
> Date: Fri Dec 4 04:27:21 2015
> New Revision: 291744
> URL: https://svnweb.freebsd.org/changeset/base/291744
>
> Log:
> Calculate MPATH for sys/modules to save 92% time in a basic 'obj' tree-walk.
>
> Sponsored by: EMC / Isilon Storage Division
>
> Modified:
> head/sys/conf/kmod.mk
> head/sys/modules/Makefile
>
> Modified: head/sys/conf/kmod.mk
> ==============================================================================
> --- head/sys/conf/kmod.mk Fri Dec 4 03:54:18 2015 (r291743)
> +++ head/sys/conf/kmod.mk Fri Dec 4 04:27:21 2015 (r291744)
> @@ -370,8 +370,10 @@ vnode_if_typedef.h:
> .endif
>
> # Build _if.[ch] from _if.m, and clean them when we're done.
> +# This is duplicated in sys/modules/Makefile.
> .if !defined(__MPATH)
> __MPATH!=find ${SYSDIR:tA}/ -name \*_if.m
> +.export __MPATH
> .endif
> _MFILES=${__MPATH:T:O}
> _MPATH=${__MPATH:H:O:u}
It's also duplicated in sys/conf/kern.pre.mk which uses this to export it:
# Calculate path for .m files early, if needed.
.if !defined(__MPATH)
__MPATH!=find ${S:tA}/ -name \*_if.m
.endif
....
MKMODULESENV+= __MPATH="${__MPATH}"
So, the comment should probably reference the two other places that will pass
an __MPATH down (kern.pre.mk and sys/modules/Makefile).
Note though that you should only be seeing this if you are building modules
outside of a kernel build (e.g. MODULES_WITH_WORLD). modules built as part of
a kernel build will inherit __MPATH from kern.pre.mk.
When I ran a buildkernel with truss -af and grepp'd for all the execve's of
/usr/bin/find I only found about 6 for a GENERIC kernel, so I believe that
the kern.pre.mk bits were working already.
--
John Baldwin
More information about the svn-src-head
mailing list