[OE-core] [PATCH 4/7] kernel: Pull uImage generation into separate class

Koen Kooi koen at dominion.thruhere.net
Sun Oct 26 11:29:18 UTC 2014


> Op 22 okt. 2014, om 23:45 heeft Marek Vasut <marex at denx.de> het volgende geschreven:
> 
> On Wednesday, October 22, 2014 at 10:42:09 AM, Koen Kooi wrote:
>>> Op 22 okt. 2014, om 01:28 heeft Marek Vasut <marex at denx.de> het volgende
>>> geschreven:
>>> 
>>> On Monday, October 20, 2014 at 12:26:04 PM, Koen Kooi wrote:
>>>>> Op 19 okt. 2014, om 21:15 heeft Marek Vasut <marex at denx.de> het
>>>>> volgende geschreven:
>>>>> 
>>>>> Pull the uImage image format generation from kernel.bbclass into
>>>>> a separate kernel-uimage.bbclass. The recipes which now need to
>>>>> generate an uImage will have to inherit kernel-uimage instead of
>>>>> kernel class.
>>>> 
>>>> To keep backward compatibility, could you rework this into something
>>>> like:
>>>> 
>>>> kernel.bbclass:
>>>> 	inherit kernel-${KERNEL_IMAGETYPE}
>>>> 
>>>> kernel-${KERNEL_IMAGETYPE}:
>>>> 	inherit kernel-base
>>>> 	imagetype stuff
>>>> 
>>>> kernel-base:
>>>> 	old kernel.bbclass stuff
>>>> 
>>>> That would keep existing BSPs working *and* split out the image types.
>>> 
>>> Yes, this makes sense. Are there any traps inside kernel.bbclass I should
>>> be careful about? Like for example ${PN} or other possible variables
>>> which are set based on the name of the file?
>> 
>> You should be safe, PN is supposed to be completely ignored since the
>> output packages will all be 'kernel-<foo>' instead of
>> 'linux-myfirstbsp-<foo>'
> 
> The kernel_do_configure() and do_configure stuff in kernel.bbclass now bit me.
> I'm not even sure I can explain the problem well, so please bear with me.
> 
> The build system now cannot find do_configure() when building kernel recipe, 
> since by moving kernel.bbclass contents into kernel-base.bbclass, the 
> expectations of prefix of functions passed to 'addtask ... do_configure' and 
> 'EXPORT_FUNCTIONS ... do_configure' are no longer met. Before, the functions
> in kernel.bbclass, namely kernel_do_configure() , kernel_do_compile() and 
> kernel_do_install() had prefix matching the name of the bbclass (kernel_) and 
> were used by the addtask...do_configure() and EXPORT_FUNCTIONS...do_configure() 
> without the kernel_ prefix.
> 
> Now that I moved the contents of kernel.bbclass into kernel-base.bbclass, the 
> name of the kernel_do_*() functions no longer matches the bbclass name and so
> I presume the addtask... and EXPORT_FUNCTIONS... things are confused. 
> Furthermore, I presume we want to keep the name of those kernel_do_*() functions
> in case some recipes wanted to override those functions.
> 
> Do you happen to have any suggestion please ?

Hmmm, it looks like there isn't a way to make this "just work" for 'old' BSPs :(


More information about the Openembedded-core mailing list