diff options
| -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 | ||
