It's already mentioned, but I think it helps to emphasize that all dependencies are dependencies between tasks, regardless of how they're added. Section 3.9 (between 3.9 and 3.9.1) could be rewritten/fleshed out like this: To allow for efficient parallel processing, BitBake handles dependencies at the task level. Dependencies can exist both between tasks within a single recipe - for example, a recipe's do_configure task might need to complete before its do_compile task can run - and between tasks in different recipes - for example, one recipe's do_configure task might require another recipe's do_populate_sysroot task to have finished first, so that the libraries and headers provided by the other recipe are available. This section describes several ways to declare dependencies. Note that even though these dependencies are declared in different ways, they are all simply dependencies between tasks. I also think section 3.9.4. Recursive Dependencies would be better with a concrete example (something something wait for all recipes...). The term "inter-task dependency" seems confusing as well. Aren't all dependencies by definition inter-task since they're dependencies between tasks rather than dependencies within tasks? Was "inter-task" supposed to be "inter-recipe"? In that case I think "between tasks in different recipes" would be clearer.
Hi, I updated the 3.9 section based on your information. I formed it a bit differently but think I got the details. If not let me know. See http://www.yoctoproject.org/docs/2.2/bitbake-user-manual/bitbake-user-manual.html#dependencies The second part of the bug you noted for section 3.9.4 for recursive dependencies I need some further explanation. I don't have a full example. So if you could provide some code snippits I could get them in there. Also, regarding the term "inter-task" -- Both section 3.9.4 and 3.9.5 use that term. See http://www.yoctoproject.org/docs/2.2/bitbake-user-manual/bitbake-user-manual.html#recursive-dependencies and http://www.yoctoproject.org/docs/2.2/bitbake-user-manual/bitbake-user-manual.html#inter-task-dependencies. Section 3.9.5 seems to imply that inter-task means "interdependency checks between specific tasks and further clarifies it by adding "rather than checks for the data in DEPENDS." I don't understand this but that is clearly some sort of definition for "inter-task". Maybe you or someone can tell me if that is the right definition for "inter-task" in this case. Once I know that, I can attempt to clear things up a bit for those two sections. Thanks, Scott
(In reply to comment #1) > I updated the 3.9 section based on your information. I formed it a bit > differently but think I got the details. If not let me know. See > http://www.yoctoproject.org/docs/2.2/bitbake-user-manual/bitbake-user-manual. > html#dependencies Looks nice. My version was a bit run-on. :) Could we also add the following note to the end of '3.9.1. Dependencies Internal to the .bb File'? It sorts out some confusion I've seen. "Recipes are built by having their do_build (not to be confused with do_compile) tasks executed. For a task to run when a recipe is built, it must therefore be a direct or indirect dependency of do_build. The following examples illustrate this: * 'addtask mytask before do_build' causes mytask to run when the recipe is built. In this example it is run at an unspecified time relative to other tasks within the recipe, since no 'after' is given. * 'addtask mytask after do_configure' by itself does *not* cause mytask to run when the recipe is built. The task can still be run manually with $ bitbake <recipe> -c mytask , and could also be declared as a dependency of some other task. In both cases, it will run after do_configure." To make the task and dependency information in the BitBake User Manual easier to find, I suggest adding the following, "For more information on tasks and dependencies, see the [3.5. Tasks] and [3.9 Dependencies] sections of the BitBake User Manual." , to the following places in the Yocto Project Reference Manual: * Right before '8.1. Normal Recipe Build Tasks'. * Near the end of the glossary entries for DEPENDS and RDEPENDS. We could return to recrdeptask and "inter-task" later. (Maybe in a separate ticket, so this one doesn't get too big.) I would need to do some digging to figure stuff out at least. Would be nice if someone more familiar with it could jump in too.
Hi, Here is the new note added to the BB manual: http://www.yoctoproject.org/docs/2.2/bitbake-user-manual/bitbake-user-manual.html#dependencies-internal-to-the-bb-file. Check it out for me and let me know of any problems or changes. The additional notes in the ref-manual can be found at the following variable descriptions near the bottom of each variable: * http://www.yoctoproject.org/docs/2.2/ref-manual/ref-manual.html#var-DEPENDS * http://www.yoctoproject.org/docs/2.2/ref-manual/ref-manual.html#var-RDEPENDS Thanks, Scott
Just one nit: ...since "after" is not used... could use code highlighting and no quotation marks instead for "after".
I also think I came up with something useful to add to '3.9.4. Recursive Dependencies', that explains its purpose. I'd add this in a separate paragraph after "iterative passes continue until all dependencies are discovered and added": recrdeptask is most commonly used in high-level recipes that need to wait for some task to finish "globally". For example, image.bbclass has the following: do_rootfs[recrdeptask] += "do_packagedata" This says that the do_packagedata task of all recipes reachable (via dependencies) from the image recipe must run before the do_rootfs task can run.
Ulf, Here is the formatting change in the note for "after" - http://www.yoctoproject.org/docs/2.2/bitbake-user-manual/bitbake-user-manual.html#dependencies-internal-to-the-bb-file Also, here is the link for that additional paragraph you suggested: http://www.yoctoproject.org/docs/2.2/bitbake-user-manual/bitbake-user-manual.html#recursive-dependencies. Let me know how this works. Thanks, Scott
Looks good to me. Thanks!
Thanks, Setting to RESOLVED and putting the doc flag to "Done." Scott