[OE-core] Patch for fixing build issues with external kernel modules.

Darren Hart dvhart at linux.intel.com
Mon May 9 20:53:19 UTC 2011



On 05/09/2011 11:38 AM, Franz Leitl wrote:
> Am Montag 09 Mai 2011, 20:23:19 schrieb Darren Hart:
>> On 05/09/2011 10:53 AM, Koen Kooi wrote:
>>> Op 9 mei 2011, om 19:32 heeft Franz Leitl het volgende geschreven:
>>>> Hi,
>>>>
>>>> Am Montag 09 Mai 2011, 18:28:06 schrieben Sie:
>>>>>> I've tried to get compcache kernel module building against 2.6.34 from
>>>>>> shr- core but found some issues with kernel.bbclass and
>>>>>> module.bbclass.
>>>>>>
>>>>>> The kernel.bbclass deletes the .c files from scripts directory which
>>>>>> are later needed by make prepare to recreate bound.h and other files.
>>>>>> Compcache kernel module, for example, depends on bounds.h.
>>>>>
>>>>> The bounds.h should not need to be recreated. It is created during the
>>>>> build of the kernel, and since 2.6.26, the makefile knows not to remove
>>>>> it.
>>>>
>>>> Compache does not build without bounds.h and this file is missing in the
>>>> staging directory for what ever reason.
>>>
>>> I ran into the same and I did the following:
>>>
>>> http://git.angstrom-distribution.org/cgi-bin/cgit.cgi/meta-texasinstrumen
>>> ts/commit/?id=7bcba149f05cc9c5d8ce956ee40e2c6849601470
>>
>> Thanks Koen, I knew we had discussed this once before. In your case,
>> IIRC, you found that the "make clean" deleted bounds.h, even with the
>> fix from 2.6.26 applied.
>>
>> At the time we agreed that patching the kernel bbclasses for a bug in a
>> particular kernel version wasn't a good plan. I'm concerned that Franz
>> is hitting this with 2.6.34.
>>
>> Franz, can you confirm that bounds.h exists before the clean and does
>> not exist after the clean? Some simple instrumentation to kernel.bbclass
>> should be able to do this.
> I'll try to find out.
> 
>> If so, we need to look into why that is happening. Simply not deleting
>> the C files from the source isn't an acceptable fix to save 1 file.
> The c files are deleted by the kernel.bbclass not by "make clean" while make 
> clean deletes the bounds.h... Who is doing the wrong thing now? kernel.bbclass 
> removing the bounds.c, kernel's make clean removing the bounds.h or the module 
> author relying on modules.h?

The kernel should not remove bounds.h, that is documented in the
Makefile. If it does, it's a bug.

> 
> I don't know if/what the problem is with regenerating some things in 
> module.bbclass. It is already done with "make scripts". Cleaning up 
> things to save diskspace and recreating if needed does not seem to 
> bad to me. Am I missing something?

The scripts are regenerated as they are host specific. If you were to
use an sstate package, you don't want host-specific binaries in it. (We
aren't there yet, but we want to keep that in mind).

It's just about fixing it properly instead of applying a band-aid.
Regenerating something that shouldn't have been deleted in the first
place is a band-aid, and you can go that route in your own recipe if you
like (per Koen's patch), but that doesn't belong in the core kernel classes.

Thanks,

-- 
Darren Hart
Intel Open Source Technology Center
Yocto Project - Linux Kernel




More information about the Openembedded-core mailing list