[poky] questions about bblayers idioms
Joshua Lock
josh at openedhand.com
Tue Jan 25 02:15:06 PST 2011
On Tue, 2011-01-25 at 11:59 +1000, Angus Lees wrote:
> I've been trying to play nice and describe my poky changes in
> self-contained layers.
> I have accumulated a bunch of questions about some common problems
> I've hit, and I'm sorry if some of these are FAQs:
The layers are still new and I'm glad to see people using them, if
there's documentation missing we'll be glad to add it.
> 1. *.bbappend lets me modify *.bb files. How do I incrementally
> modify other files?
>
> Eg: I'd really like to add something to gcc-common.inc (for example).
> Do I need to add a family of gcc-*.bbappend files to hook in the
> common change?
That seems like it would work, I'm not sure if there's a neater
alternative...
>
> 1a. How do I modify/fix a bbclass file?
>
> In particular {siteinfo,insane}.bbclass need to be modified to add new
> architectures, which seems like a common task.
> Copying and modifying (as I have done), gets increasingly ugly now
> that I have two layers, which each want to add new architectures (one
> SDK, one target).
Not something I've tried either, but you should be able to use the
inclusion capabilities of BitBake to create a class which includes the
class from the core and adds whatever you require.
http://bitbake.berlios.de/manual/ch02.html#id869194
>
> 2. BBCLASSEXTEND doesn't work in .bbappend files.
>
> Is this correct? I tried to add BBCLASSEXTEND+="nativesdk" to a
> .bbappend file but it didn't seem to have any effect.
Not sure, is this simply a case where the += syntax requires a space,
i.e try:
BBCLASSEXTEND += " nativesdk"
or
BBCLASSEXTEND =+ "nativesdk"
http://bitbake.berlios.de/manual/ch02.html#id868981
Though I can't see why we wouldn't take a change like that into the
core.
>
> 3. What is the standard idiom for picking up patches from layers?
>
> I've been using something like this:
> THISDIR := "${@os.path.dirname(bb.data.getVar('FILE', d, True))}"
> FILESPATH =. "${@base_set_filespath(["${THISDIR}/${BP}"], d)}:"
In the emenlow layer we use:
FILESEXTRAPATHS := "${THISDIR}/${PN}"
THISDIR is already defined for you in base.bbclass
This is vaguely alluded to in the BSP document:
http://www.yoctoproject.org/docs/poky-ref-manual/poky-ref-manual.html#bsp-filelayout-kernel
>
> But this gets increasingly more difficult once you have multiple
> layers and I had to use unique names for THISDIR in each layer :(
> Is there some better way to handle this?
Hopefully this will get you a bit further until someone better informed
comes along.
Regards,
Joshua
--
Joshua Lock
Intel Open Source Technology Centre
More information about the poky
mailing list