diff options
Diffstat (limited to 'documentation/ref-manual/eclipse/html/poky-ref-manual/shared-state-cache.html')
| -rw-r--r-- | documentation/ref-manual/eclipse/html/poky-ref-manual/shared-state-cache.html | 60 |
1 files changed, 60 insertions, 0 deletions
diff --git a/documentation/ref-manual/eclipse/html/poky-ref-manual/shared-state-cache.html b/documentation/ref-manual/eclipse/html/poky-ref-manual/shared-state-cache.html new file mode 100644 index 0000000000..8f2f5a5ed6 --- /dev/null +++ b/documentation/ref-manual/eclipse/html/poky-ref-manual/shared-state-cache.html | |||
| @@ -0,0 +1,60 @@ | |||
| 1 | <html> | ||
| 2 | <head> | ||
| 3 | <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> | ||
| 4 | <title>3.2. Shared State Cache</title> | ||
| 5 | <link rel="stylesheet" type="text/css" href="../book.css"> | ||
| 6 | <meta name="generator" content="DocBook XSL Stylesheets V1.76.1"> | ||
| 7 | <link rel="home" href="index.html" title="The Yocto Project Reference Manual"> | ||
| 8 | <link rel="up" href="technical-details.html" title="Chapter 3. Technical Details"> | ||
| 9 | <link rel="prev" href="usingpoky-components-configuration.html" title="3.1.4. Configuration"> | ||
| 10 | <link rel="next" href="overall-architecture.html" title="3.2.1. Overall Architecture"> | ||
| 11 | </head> | ||
| 12 | <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="section" title="3.2. Shared State Cache"> | ||
| 13 | <div class="titlepage"><div><div><h2 class="title" style="clear: both"> | ||
| 14 | <a name="shared-state-cache"></a>3.2. Shared State Cache</h2></div></div></div> | ||
| 15 | <p> | ||
| 16 | By design, the OpenEmbedded build system builds everything from scratch unless | ||
| 17 | BitBake can determine that parts don't need to be rebuilt. | ||
| 18 | Fundamentally, building from scratch is attractive as it means all parts are | ||
| 19 | built fresh and there is no possibility of stale data causing problems. | ||
| 20 | When developers hit problems, they typically default back to building from scratch | ||
| 21 | so they know the state of things from the start. | ||
| 22 | </p> | ||
| 23 | <p> | ||
| 24 | Building an image from scratch is both an advantage and a disadvantage to the process. | ||
| 25 | As mentioned in the previous paragraph, building from scratch ensures that | ||
| 26 | everything is current and starts from a known state. | ||
| 27 | However, building from scratch also takes much longer as it generally means | ||
| 28 | rebuilding things that don't necessarily need rebuilt. | ||
| 29 | </p> | ||
| 30 | <p> | ||
| 31 | The Yocto Project implements shared state code that supports incremental builds. | ||
| 32 | The implementation of the shared state code answers the following questions that | ||
| 33 | were fundamental roadblocks within the OpenEmbedded incremental build support system: | ||
| 34 | </p> | ||
| 35 | <div class="itemizedlist"><ul class="itemizedlist" type="disc"> | ||
| 36 | <li class="listitem">What pieces of the system have changed and what pieces have not changed?</li> | ||
| 37 | <li class="listitem">How are changed pieces of software removed and replaced?</li> | ||
| 38 | <li class="listitem">How are pre-built components that don't need to be rebuilt from scratch | ||
| 39 | used when they are available?</li> | ||
| 40 | </ul></div> | ||
| 41 | <p> | ||
| 42 | </p> | ||
| 43 | <p> | ||
| 44 | For the first question, the build system detects changes in the "inputs" to a given task by | ||
| 45 | creating a checksum (or signature) of the task's inputs. | ||
| 46 | If the checksum changes, the system assumes the inputs have changed and the task needs to be | ||
| 47 | rerun. | ||
| 48 | For the second question, the shared state (sstate) code tracks which tasks add which output | ||
| 49 | to the build process. | ||
| 50 | This means the output from a given task can be removed, upgraded or otherwise manipulated. | ||
| 51 | The third question is partly addressed by the solution for the second question | ||
| 52 | assuming the build system can fetch the sstate objects from remote locations and | ||
| 53 | install them if they are deemed to be valid. | ||
| 54 | </p> | ||
| 55 | <p> | ||
| 56 | The rest of this section goes into detail about the overall incremental build | ||
| 57 | architecture, the checksums (signatures), shared state, and some tips and tricks. | ||
| 58 | </p> | ||
| 59 | </div></body> | ||
| 60 | </html> | ||
