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

Bruce Ashfield bruce.ashfield at windriver.com
Wed Aug 15 15:52:54 UTC 2018


On 2018-08-15 11:50 AM, Richard Purdie wrote:
> 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.

I'll have a look!

Bruce

> 
> Other things are still building. Will reply if anything else comes up.
> 
> Cheers,
> 
> Richard
> 
> 
> 




More information about the Openembedded-core mailing list