[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