[OE-core] [PATCH v3] kernel-devsrc: restructure for out of tree (and on target) module builds

Richard Purdie richard.purdie at linuxfoundation.org
Wed Aug 15 15:50:44 UTC 2018


On Wed, 2018-08-15 at 09:32 -0400, Bruce Ashfield wrote:
> The existing kernel-devsrc package starts with a full copy of the
> kernel
> source and then starts to strip out elements that are not required.
> 
> This results in extra time (I/O) and extra space being taken up in
> the
> final package. The main purpose of the kernel-devsrc package has been
> to
> build modules against the running kernel, not to include a full copy
> of
> the source code for re-building the kernel. The end result was a
> 600M kernel-devsrc package.
> 
> This restructuring of the package uses an approach similar to other
> distros, where the kernel-devsrc package is for building against the
> running kernel and uses a curated set of copied infrastructure,
> versus
> a mass copy of the entire kernel.
> 
> The differences in this approach versus other is largely due to the
> architecture support and the split build/source directory of the
> kernel.
> 
> The result is a kernel-devsrc package of about 10M, which is capable
> of running "make scripts" and compiling kernel modules against the
> running kernel.
> 
> Along with the changes to the copying of the infrascture, we also
> have the following changes:
> 
>  - a better/more explicit listing of dependencies for on-target
>    builds of "make scripts" or "make modules_prepare"
> 
>  - The kernel source is installed into /lib/modules/<version>/build
>    and a symlink created from /usr/src/kernel to the new location.
>    This aligns with the standard location for module support
>    code
> 
>  - There is also a symlink from /lib/modules/<version>/source ->
> build
>    to reserve a spot for a new package that is simply the kernel
>    source. That package is not part of this update.
> 
> Signed-off-by: Bruce Ashfield <bruce.ashfield at windriver.com>
> ---
> 
> Hopefully this fixes up the last of the issues, but at the very least
> there will be less. I'll immediatly respin if the autombuilder finds
> a combo I didn't test.
> 
> v2: drop DEPENDS on perf. We no longer need to depend on 
>     perf since the source is copied before modification.
> 
> v3: build fixes for:
>       - DESCEND  objtool build failure
>       - No rule to make target 'arch/mips/boot/tools/relocs_32.c'
>       - No rule to make target 'arch/arm/tools/syscall.tbl'
>       - No rule to make target 'arch/arm64/kernel/vdso/vdso.lds'

There has been one failure so far:

https://autobuilder.yocto.io/builders/build-appliance/builds/1201/steps/BuildImages_1/logs/stdio

I suspect we need to tweak the do_populate_poky_src task in the build-
appliance-image recipe given the kernel devsrc change.

Other things are still building. Will reply if anything else comes up.

Cheers,

Richard






More information about the Openembedded-core mailing list