[poky] question about task override

Tian, Kevin kevin.tian at intel.com
Wed Dec 15 03:24:02 PST 2010


I'm not sure whether "task override" is the right term here. Let me describe it:

It's possible to have multiple places define same task, e.g:

a.bbclass:
	do_install () {
     ...
     }

b.bbclass:
     b_do_install() {
     ...
     }

c.bb:
	inherit a b
     
I know that if c.bb defines its own do_install, that would be the one being used which
simply overrides a.bbclass and b.bbclass.

However I don't know if c.bb doesn't define its own do_install, which one from a.bbclass
or b.bbclass will take effect here? In inherit order? 

A second question is how and where b_do_install is converted into a plain do_install. I tried
to search the source but failed to locate the exact lines. For example, patch_do_patch is
one mysterious function which I don't how it becomes do_patch.

Then comes the third question. How to reference a specific version of do_install from 
another place? I want to add one exclusive variable dependency for do_deploy in 
kernel.bbclass, however neither of below works:

(meta/conf/distro/poky.conf)
do_deploy[vardepsexclude] = "DATE TIME"
kernel_do_deploy[vardepsexclude] = "DATE TIME"

There's one example in poky.conf:

patch_do_patch[vardepsexclude] = "DATE SRCDATE"

which works. Does that mean I have to change do_deploy in kernel.bbclass to
kernel_do_deploy which is unique in global namespace and then can be referenced
from other places?

Thanks
Kevin




More information about the poky mailing list