diff options
author | Richard Purdie <richard.purdie@linuxfoundation.org> | 2014-01-18 14:27:30 +0000 |
---|---|---|
committer | Richard Purdie <richard.purdie@linuxfoundation.org> | 2014-01-27 21:03:21 +0000 |
commit | ab18cca2dc65a2d40b92a4c27e114f4ce0b7e074 (patch) | |
tree | 1f25203f57ee699fb0fef5c9ccbd59da9386261f /bitbake/doc/user-manual | |
parent | 8705fe23834ec9a164ca21e8c141fded97af28de (diff) | |
download | poky-ab18cca2dc65a2d40b92a4c27e114f4ce0b7e074.tar.gz |
bitbake: user-manual-metadata: Add section about running tasks and the environment
(Bitbake rev: b32524643c125c78848630a5ce18d1df36313bc7)
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Diffstat (limited to 'bitbake/doc/user-manual')
-rw-r--r-- | bitbake/doc/user-manual/user-manual-metadata.xml | 74 |
1 files changed, 74 insertions, 0 deletions
diff --git a/bitbake/doc/user-manual/user-manual-metadata.xml b/bitbake/doc/user-manual/user-manual-metadata.xml index 55b59ebcc1..c38c542a10 100644 --- a/bitbake/doc/user-manual/user-manual-metadata.xml +++ b/bitbake/doc/user-manual/user-manual-metadata.xml | |||
@@ -480,6 +480,80 @@ | |||
480 | </para> | 480 | </para> |
481 | </section> | 481 | </section> |
482 | 482 | ||
483 | <section id='running-a-task'> | ||
484 | <title>Running a Task</title> | ||
485 | |||
486 | <para> | ||
487 | Tasks can either be a shell task or a Python task. | ||
488 | For shell tasks, BitBake writes a shell script to | ||
489 | <filename>${WORKDIR}/temp/run.do_taskname.pid</filename> | ||
490 | and then executes the script. | ||
491 | The generated shell script contains all the exported variables, | ||
492 | and the shell functions with all variables expanded. | ||
493 | Output from the shell script goes to the file | ||
494 | <filename>${WORKDIR}/temp/log.do_taskname.pid</filename>. | ||
495 | Looking at the expanded shell functions in the run file and | ||
496 | the output in the log files is a useful debugging technique. | ||
497 | </para> | ||
498 | |||
499 | <para> | ||
500 | For Python tasks, BitBake executes the task internally and logs | ||
501 | information to the controlling terminal. | ||
502 | Future versions of BitBake will write the functions to files | ||
503 | similar to the way shell tasks are handled. | ||
504 | Logging will be handled in a way similar to shell tasks as well. | ||
505 | </para> | ||
506 | |||
507 | <para> | ||
508 | Once all the tasks have been completed BitBake exits. | ||
509 | </para> | ||
510 | |||
511 | <para> | ||
512 | When running a task, BitBake tightly controls the execution | ||
513 | environment of the build tasks to make | ||
514 | sure unwanted contamination from the build machine cannot | ||
515 | influence the build. | ||
516 | Consequently, if you do want something to get passed into the | ||
517 | build task's environment, you must take a few steps: | ||
518 | <orderedlist> | ||
519 | <listitem><para> | ||
520 | Tell BitBake to load what you want from the environment | ||
521 | into the data store. | ||
522 | You can do so through the | ||
523 | <filename>BB_ENV_EXTRAWHITE</filename> variable. | ||
524 | For example, assume you want to prevent the build system from | ||
525 | accessing your <filename>$HOME/.ccache</filename> | ||
526 | directory. | ||
527 | The following command tells BitBake to load | ||
528 | <filename>CCACHE_DIR</filename> from the environment into | ||
529 | the data store: | ||
530 | <literallayout class='monospaced'> | ||
531 | export BB_ENV_EXTRAWHITE="$BB_ENV_EXTRAWHITE CCACHE_DIR" | ||
532 | </literallayout></para></listitem> | ||
533 | <listitem><para> | ||
534 | Tell BitBake to export what you have loaded into the | ||
535 | environment store to the task environment of | ||
536 | every running task. | ||
537 | Loading something from the environment into the data | ||
538 | store (previous step) only makes it available in the datastore. | ||
539 | To export it to the task environment of every running task, | ||
540 | use a command similar to the following in your | ||
541 | <filename>local.conf</filename> or distribution configuration file: | ||
542 | <literallayout class='monospaced'> | ||
543 | export CCACHE_DIR | ||
544 | </literallayout> | ||
545 | <note> | ||
546 | A side effect of the previous steps is that BitBake | ||
547 | records the variable as a dependency of the build process | ||
548 | in things like the shared state checksums. | ||
549 | If doing so results in unnecessary rebuilds of tasks, you can | ||
550 | whitelist the variable so that the shared state code | ||
551 | ignores the dependency when it creates checksums. | ||
552 | </note></para></listitem> | ||
553 | </orderedlist> | ||
554 | </para> | ||
555 | </section> | ||
556 | |||
483 | <section id='task-flags'> | 557 | <section id='task-flags'> |
484 | <title>Task Flags</title> | 558 | <title>Task Flags</title> |
485 | 559 | ||