summaryrefslogtreecommitdiffstats
path: root/documentation/getting-started/eclipse/html/getting-started/invalidating-shared-state.html
diff options
context:
space:
mode:
Diffstat (limited to 'documentation/getting-started/eclipse/html/getting-started/invalidating-shared-state.html')
-rw-r--r--documentation/getting-started/eclipse/html/getting-started/invalidating-shared-state.html77
1 files changed, 77 insertions, 0 deletions
diff --git a/documentation/getting-started/eclipse/html/getting-started/invalidating-shared-state.html b/documentation/getting-started/eclipse/html/getting-started/invalidating-shared-state.html
new file mode 100644
index 0000000000..ef4a2aac5e
--- /dev/null
+++ b/documentation/getting-started/eclipse/html/getting-started/invalidating-shared-state.html
@@ -0,0 +1,77 @@
1<html>
2<head>
3<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
4<title>3.3.4.2. Invalidating Shared State</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="Getting Started With Yocto Project">
8<link rel="up" href="tips-and-tricks.html" title="3.3.4. Tips and Tricks">
9<link rel="prev" href="overview-debugging.html" title="3.3.4.1. Debugging">
10<link rel="next" href="automatically-added-runtime-dependencies.html" title="3.4. Automatically Added Runtime Dependencies">
11</head>
12<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="section" title="3.3.4.2. Invalidating Shared State">
13<div class="titlepage"><div><div><h4 class="title">
14<a name="invalidating-shared-state"></a>3.3.4.2. Invalidating Shared State</h4></div></div></div>
15<p>
16 The OpenEmbedded build system uses checksums and shared
17 state cache to avoid unnecessarily rebuilding tasks.
18 Collectively, this scheme is known as "shared state code."
19 </p>
20<p>
21 As with all schemes, this one has some drawbacks.
22 It is possible that you could make implicit changes to your
23 code that the checksum calculations do not take into
24 account.
25 These implicit changes affect a task's output but do not
26 trigger the shared state code into rebuilding a recipe.
27 Consider an example during which a tool changes its output.
28 Assume that the output of <code class="filename">rpmdeps</code>
29 changes.
30 The result of the change should be that all the
31 <code class="filename">package</code> and
32 <code class="filename">package_write_rpm</code> shared state cache
33 items become invalid.
34 However, because the change to the output is
35 external to the code and therefore implicit,
36 the associated shared state cache items do not become
37 invalidated.
38 In this case, the build process uses the cached items
39 rather than running the task again.
40 Obviously, these types of implicit changes can cause
41 problems.
42 </p>
43<p>
44 To avoid these problems during the build, you need to
45 understand the effects of any changes you make.
46 Realize that changes you make directly to a function
47 are automatically factored into the checksum calculation.
48 Thus, these explicit changes invalidate the associated
49 area of shared state cache.
50 However, you need to be aware of any implicit changes that
51 are not obvious changes to the code and could affect
52 the output of a given task.
53 </p>
54<p>
55 When you identify an implicit change, you can easily
56 take steps to invalidate the cache and force the tasks
57 to run.
58 The steps you can take are as simple as changing a
59 function's comments in the source code.
60 For example, to invalidate package shared state files,
61 change the comment statements of
62 <a class="link" href="../ref-manual/ref-tasks-package.html" target="_self"><code class="filename">do_package</code></a>
63 or the comments of one of the functions it calls.
64 Even though the change is purely cosmetic, it causes the
65 checksum to be recalculated and forces the OpenEmbedded
66 build system to run the task again.
67 </p>
68<div class="note" title="Note" style="margin-left: 0.5in; margin-right: 0.5in;">
69<h3 class="title">Note</h3>
70 For an example of a commit that makes a cosmetic
71 change to invalidate shared state, see this
72 <a class="ulink" href="http://git.yoctoproject.org/cgit.cgi/poky/commit/meta/classes/package.bbclass?id=737f8bbb4f27b4837047cb9b4fbfe01dfde36d54" target="_self">commit</a>.
73 </div>
74<p>
75 </p>
76</div></body>
77</html>