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

Marek Vasut marex at denx.de
Wed Oct 22 21:45:59 UTC 2014

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 ?

Best regards,
Marek Vasut

More information about the Openembedded-core mailing list