[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